订单表A:
A01(订单号) A02(产品编号) A03(订单数)
-------------------------------------------------------------------
d001 m01 2
d001 m02 1
d001 m03 3
d002 m04 5
...
本次出货表B:
B01(出货单号) B02(产品编号) B03(出货数)
------------------------------------------------------------------------
s001 m01 1
s002 m01 2
s002 m02 3
....
以上可以看出m01订单数为3,但是出了两次货,一次是s001,一次是s002,总共sum起来是3,超过了订单数2。
同理m02超过了2个。
此出货表B是一个临时表,要做一个检测的功能,检测表B中出超数的产品编号。
想要得到好下结果:
检测结果表C:
C01(产口编号) C02(超过数)
-----------------------------------------------
m01 1
m02 2
...
------解决方案--------------------
select a.B02 'C01',
a.qty-b.qty 'C02'
from
(select B02,sum(B03) 'qty'
from 出货表B
group by B02) a
inner join
(select A02,sum(A03) 'qty'
from 订单表A
group by A02) b on a.B02=b.A02
where a.qty>b.qty