如下,表
X
A(订单号) B(订单数量) C(单价) D(金额) E(已销货数量)
001 3 1 3 2
Y
A(销货单号) B(订单号) C(销货数量)
001 001 1
002 001 1
现在需要查询一张报表,显示订单号,销货单号,待销数量(订单数量 - 已销货数量)
select X.A as '订单号',Y.A as '销货单号', (X.B - X.E ) as ‘待销数量’ from X LEFT JOIN Y ON X.A = Y.B
结果如下
订单号 销货单号 待销数量
001 001 1
001 002 1
进行汇总待销数量时,总待销数量就成 2 了,这是不对的。
那可否实现下面的结果呢 ??
订单号 销货单号 待销数量
001 001 1
001 002 0
------解决思路----------------------
SELECT X.A[订单号],Y.A[销货单号]是酱紫吗?
,CASE WHEN ROW_NUMBER()OVER(PARTITION BY X.A ORDER BY Y.A)=1 THEN X.B-X.E ELSE 0 END[待销数量]
FROM X LEFT JOIN Y ON X.A=Y.B