2015-07-06 77 views
0

我有以下查詢,其中每個'SENDER_REFERENCE_NB'返回兩個項目,其中MESSAGE_STATUS是'(Receive)',另一個是MESSAGE_STATUS是'匹配'。兩者都包含一個CREATE_TM選擇分組查詢

select MESSAGE_ID, CREATE_TM, MESSAGE_STATUS 
from TMS_MESSAGE_AUDIT_LOG 
where message_id in (select message_id from tms_message 
        WHERE SENDER_REFERENCE_NB like '150703%') 
    and MESSAGE_STATUS in ('(Receive)', 'Matched'); 

我想什麼來實現的,是每個SENDER_REFERENCE_NB,我看到相關與這個詞條和相關聯的「匹配」的地位和CREATE_TM的(「接收」)狀態& CREATE_TM,所有上一行。

+0

恐怕你現在的問題不會得到明確的答案。你可以添加你的模式,並讓問題更清楚嗎? –

+0

樣本數據和期望的結果真的有幫助。 –

+0

我想你將不得不加入表(而不是子選擇),並可能使用PIVOT來得到你想要的。 – Turophile

回答

0

使一些假設,這裏就是我的回答:

Select L1.MESSAGE_ID, L1.CREATE_TM, L1.MESSAGE_STATUS, 
     L2.MESSAGE_ID, L2.CREATE_TM, L2.MESSAGE_STATUS 
from TMS_MESSAGE_AUDIT_LOG AS L1 
INNER JOIN TMS_MESSAGE_AUDIT_LOG AS L2 
ON L1.MESSAGE_STATUS = '(Receive)' 
AND L1.SENDER_REFERENCE_NB like '150703%' 
AND L2.SENDER_REFERENCE_NB like '150703%' 
AND L2.MESSAGE_STATUS = 'Matched' 

你可以看到它在操作in this fiddle