当前位置: 代码迷 >> Sql Server >> []sql 怎样检测同一编号多次出货后不得超过订单原始数量
  详细解决方案

[]sql 怎样检测同一编号多次出货后不得超过订单原始数量

热度:22   发布时间:2016-04-24 10:18:07.0
[在线等]sql 怎样检测同一编号多次出货后不得超过订单原始数量?
 订单表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 
  相关解决方案