Sql 向当前查询添加第二个和
我试图在另一列中添加显示下降的总数。我想添加一个谢绝列,该列将退出,并将此总和(D.FulfillmentAmt)作为谢绝,其中D.StatusID='2'。目前,我使用两个查询,但希望以下面的一个为起点将它们合并为一个查询:Sql 向当前查询添加第二个和,sql,sql-server,Sql,Sql Server,我试图在另一列中添加显示下降的总数。我想添加一个谢绝列,该列将退出,并将此总和(D.FulfillmentAmt)作为谢绝,其中D.StatusID='2'。目前,我使用两个查询,但希望以下面的一个为起点将它们合并为一个查询: SELECT COALESCE(SUM(D.FulfillmentAmt),0) as Approved, DB.Budget, DC.CommunityName FROM DCommunity DC LEFT JOIN DBudget DB ON DC.CID =
SELECT COALESCE(SUM(D.FulfillmentAmt),0) as Approved, DB.Budget, DC.CommunityName
FROM DCommunity DC
LEFT JOIN DBudget DB ON DC.CID = DB.Community AND DB.[Year] = year(getdate())
LEFT JOIN Donations D ON D.Market = DC.CID AND D.StatusId = '1'
GROUP BY DC.CommunityName, DB.Budget
ORDER BY DC.CommunityName
我的当前查询显示以下结果:
Approved | Budget | CommunityName
100 | 2000 | City1
250 | 3000 | City2
1330 | 5000 | City3
50 | 2000 | City4
0 | 3000 | City5
2500 | 7000 | City6
我希望它能像这样工作:
Approved | Declined | Budget | CommunityName
100 | 100 | 2000 | City1
250 | 0 | 3000 | City2
1330 | 452 | 5000 | City3
50 | 863 | 2000 | City4
0 | 0 | 3000 | City5
2500 | 105 | 7000 | City6
我需要确保它仍然显示所有的城市,不管他们是否有捐款表中的记录。例如,City5没有任何记录,但仍显示为0。我希望保持这样。您希望使用条件聚合:
SELECT SUM(CASE WHEN status = '1' THEN D.FulfillmentAmt ELSE 0 END) as Approved,
DB.Budget, DC.CommunityName,
SUM(CASE WHEN status = '2' THEN D.FulfillmentAmt ELSE 0 END) as DeclinedAmount
. . .
然后在查询后面的('1','2')中使用D.StatusId