MS-SQL 挑战一下吧!怎样处理这类问题,感觉无从下手啊!求解
本帖最后由 comcyd 于 2012-11-12 18:06:09 编辑
直入主题请看下文:
描述有点过于详细,表文并茂,请耐心看完(感觉像写很烂的小说),有类似经验的看一遍就知道意思啦:
1、表A订单表:
A01[订单号] | A01[产品编号] | A02[订单数量]
--------------------------------------------------
M01 | P01 | 100
M01 | P02 | 200
M01 | P03 | 50
M02 | P01 | 200
M02 | P02 | 200
M03 | P01 | 100
M03 | P02 | 200
...
2、表B库存表:
B01[产品编号] | B02[库存数量]
---------------------------------
P01 | 200
P02 | 400
P03 | 300
...
3、表C发货单表:
C01[订货单号] | C02[产品编号] | C03[订单数量] | C04[实发数量] | C05[未发数量] | C06[主键]
--------------------------------------------------------
现在想结合表A和表B来产生表C,动态库存联合检测,然后依次插入到表C中,比如上面我要把A表中的三张订货单产生发货单,逻辑描述:
【1】.订货单里产品数量小于库存数量则插入表C的该产品实发数量为库存数量(相当于库存扒空了),若库存充足,则实发数量即为订单数量,同时未发数量就等于当前产品数量减去实发数量。
【2】.若C表插入了一条产品记录,继续再插入另一张订货单里的相同产品的时候,就要结合C表发货单表里已插入的产品记录实发数量再结合库存表综合判断。
比如C表已有一条订货单M01记录:
C01[订货单号] | C02[产品] | C03[订单数量] | C04[实发数量] | C05[未发数量] | C06[主键]
----------------------------------------------------------
M01 P01 100 100 0 k01
M01 P02 200 200 0 k02
M01 P03 50 &