我会问有关SQL Server中总和的问题。
我有一个存储订单的表,如下所示:
Code | items | Kinds | Qty |
-----------------------------------------------------
PUR/2004/001 | b001 | PURCHASE | 5 |
PUR/2004/001 | b002 | PURCHASE | 10 |
PUR/2004/002 | b001 | PURCHASE | 3 |
REC/2004/001 | b001 | RECEIVE | 4 |
我需要的是查询以计算表上每个项目的剩余未付额
所以我想要的结果是这样的:
items | Outstanding Order |
------------------------------------
b001 | 4 |
b002 | 10 |
我们可以在此处使用条件聚合:
SELECT
items,
SUM(CASE WHEN Kinds = 'PURCHASE' THEN Qty ELSE 0 END) -
SUM(CASE WHEN Kinds = 'RECEIVE' THEN Qty ELSE 0 END) AS [Outstanding Order]
FROM yourTable
GROUP BY
items;