-3

我有两个查询,它们返回两个不同的结果,一个是返回 ex#1,第二个是返回 ex#2,我想合并并想要得到想要的结果。

前#1

PartyID    PartyName    TotalMain 
  1            A            1
  2            B            1

前#2

PartyID    PartyName      TotalSub
  1            A              1
  3            C              1

我想要结果

 PartyID   PartyName       TotalMain             TotalSub
  1           A                 1                    1
  2           B                 1                    0
  3           C                 0                    1       
4

2 回答 2

1
;with sample as 
(
SELECT 
e1.PartyID as partyid
,e1.PartyName as partyname
,e1.totalmain AS TotalMain
,0 AS TotalSub
From table1 e1
UNION ALL
SELECT 
e2.PartyID
,e2.PartyName
,0 AS TotalMain
,e2.totalsub AS TotalSub
From table2 e2
)
SELECT
partyid
,MAX(partyname) as partyname
,MAX(totalmain) as totalmain
,MAX(totalsub) as totalsub
from sample
GROUP BY
partyid
于 2013-05-16T14:27:01.207 回答
0

在没有看到您的表和当前 sql 的情况下,我只能建议:

  Select Coalesce(a.PartyId, b.PartyId) partyId, 
       Coalesce(a.PartyName, b.PartyName) partyName, 
       a.TotalMain, b.TotalSub
  From ([Put First Query SQL Inside here]) a
      Full Join ([Put Second Query SQL Inside here]) b
         On a.PartyId = b.PartyId
于 2013-05-16T14:24:41.667 回答