SQL Server query using Union - any good alternate possible?

У меня есть SQL Server запрос:

SELECT top 1 vConsentInfo  FROM 
(           
            SELECT cons.vConsentInfo,cons.dTimeStamp ,logs.iPartnerProfileID 
            FROM H_OutMessageLog logs INNER JOIN H_OutMessageConsent cons on cons.iOutMessageQID = logs.iOutQueueID 
                WHERE logs.iPatID = 65686 and logs.iPracID = 4
        UNION  
            SELECT cons.vConsentInfo,cons.dTimeStamp,Q.iPartnerProfileID 
            FROM H_OutMessageQueue Q INNER JOIN H_OutMessageConsent cons on cons.iOutMessageQID = Q.iOutQueueID 
                WHERE Q.iPatID = 65686 and Q.iPracID = 4
) A 
WHERE A.iPartnerProfileID = Prof.IPartnerProfileID
Order BY dTimeStamp DESC

Таблица работает следующим образом: запись вставляется в H_OutMessageQueue в начале; затем она вставляется в H_OutMessageConsent.... Теперь есть отдельный рабочий процесс, который обрабатывает записи из H_OutMessageQueue и записывает их в H_OutMessageLog.....

Можно ли избавиться от этой UNION штуки? Обратите внимание, что это подзапрос более крупного CTE запроса.

0
задан John Saunders 29 January 2012 в 23:29
поделиться