Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 向当前查询添加第二个和_Sql_Sql Server - Fatal编程技术网

Sql 向当前查询添加第二个和

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 =

我试图在另一列中添加显示下降的总数。我想添加一个谢绝列,该列将退出,并将此总和(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  = 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