查询:
select
ag.AGENTID as AGENTID, ag.AGENTNAME as AGENTNAME,
case when pc.CONTACTTYPECD='M' then pc.CONTACTNUM end as 'MOBILE',
case when pc.CONTACTTYPECD='R' then pc.CONTACTNUM end as 'RESIDENCE',
case when pc.CONTACTTYPECD='EM' then pc.CONTACTNUM end as 'EMERGENCY_NO'
from
AGENT ag
left join
PARTY p on p.PARTYID = ag.PARTYID
left join
PARTYCONTACT pc on pc.PARTYSEQ = p.PARTYSEQ
where
ag.AGENTID = '10000005'
输出
预期输出
最佳答案
试试这个:
SELECT ag.AGENTID AS AGENTID, ag.AGENTNAME AS AGENTNAME,
MAX(CASE WHEN pc.CONTACTTYPECD='M' THEN pc.CONTACTNUM END) AS 'MOBILE',
MAX(CASE WHEN pc.CONTACTTYPECD='R' THEN pc.CONTACTNUM END) AS 'RESIDENCE',
MAX(CASE WHEN pc.CONTACTTYPECD='EM' THEN pc.CONTACTNUM END) AS 'EMERGENCY_NO'
FROM AGENT ag
LEFT JOIN PARTY p ON p.PARTYID = ag.PARTYID
LEFT JOIN PARTYCONTACT pc ON pc.PARTYSEQ = p.PARTYSEQ
WHERE ag.AGENTID = '10000005'
GROUP BY ag.AGENTID, ag.AGENTNAME
关于sql - SQL Server中如何合并不同的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27503343/