2015-07-06 78 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