Sql server SQL sum列取决于其他列的值

Sql server SQL sum列取决于其他列的值,sql-server,lookup,Sql Server,Lookup,我有一张有字段的表: Doc_No , Doc_Type , Item_No , Added_Qty ,Deducted_Qty 我需要一个根据返回结果集的查询 如果Doc_Type=“2”,则选择sum(添加数量)作为sum_Added_数量 如果Doc_Type=“7”,则选择sum(扣减数量)作为sum_decreated_数量 并显示SUM\u Added\u Qty-SUM\u decreated\u Qty作为库存 结果必须在同一行上 --------------------

我有一张有字段的表:

Doc_No , Doc_Type , Item_No , Added_Qty ,Deducted_Qty 
我需要一个根据返回结果集的查询

  • 如果Doc_Type=“2”,则选择sum(添加数量)作为sum_Added_数量
  • 如果Doc_Type=“7”,则选择sum(扣减数量)作为sum_decreated_数量
并显示
SUM\u Added\u Qty-SUM\u decreated\u Qty作为库存

结果必须在同一行上

--------------------------------------------------------
| Item_No  |  SUM_Added_Qty |  SUM_Deducted_Qty | Stock|
--------------------------------------------------------
谢谢你的帮助

(系统就是Sql server)

你说的“系统就是Sql”是什么意思?是MySQL、Oracle、SQL Server等吗?非常感谢:)我想添加更多字段和(当Doc_Type='2'时的情况,然后当Doc_Type='7'时添加_数量,然后-扣除_数量-请求的_数量,否则0结束)库存,但结果是0
SELECT Item_No,
        SUM(CASE WHEN Doc_Type = '2' THEN Added_Qty ELSE 0 END) SUM_Added_Qty,
        SUM(CASE WHEN Doc_Type = '7' THEN Deducted_Qty ELSE 0 END) SUM_Deducted_Qty,
        SUM(CASE WHEN Doc_Type = '2' THEN Added_Qty
                 WHEN Doc_Type = '7' THEN -Deducted_Qty
                 ELSE 0 END) Stock
FROM YourTable
GROUP BY Item_No