日期:2014-05-17  浏览次数:20533 次

请一复杂的更新语句,先谢过了!
说明:
根据"发货表"的数据更新"库存表"的"占用数量",条件:相同商品编号,相同的仓库.请SQL语句,谢谢!

SQL code

/*发货表                        
自增主键    发货单号    服务商    商品编号    商品名称    仓库    数量
ID    LoadTranNo    LoadCarriers    sku    SKUNAME    Loadkz    qty
117    H120914000158    深圳市恒7    800542    A2r    503    10
118    H120914000158    深圳市恒7    800541    Cisr    503    6
119    H120914000178    深圳市恒7    105324    sarnl    503    3
120    H120914000178    深圳市恒7    800542    A2r    503    2
121    H120914000178    深圳市恒7    714339    XD2    503    7

库存表                                
自增主键    商品编号    批号    库位    仓库    商品数量    占用数量    留用    日期
ID    Sku    BatchNo    kuwei    Loadkz    Qty    Qty1    Inqty3    Drdate
313    800542    120724809    56112A    503    5        NULL    2012-9-18 15:17
314    800542    120724809    56112B    503    6        NULL    2012-9-18 15:17
315    800542    120911809    56103B    503    14        NULL    2012-9-18 15:17
316    800541    120726801    56F07A    503    1        NULL    2012-9-18 15:17
317    800541    120726801    56H10A    503    7        NULL    2012-9-18 15:17
318    714339    120726801    56O05A    503    13        NULL    2012-9-18 15:17
319    105324    120726801    56O07A    503    1        NULL    2012-9-18 15:17
320    105324    120726801    56O07A    503    2        NULL    2012-9-18 15:17


结果(更新qty1(占用数量)之后得出的结果)                                
自增主键    商品编号    批号    库位    仓库    商品数量    占用数量    留用    日期
ID    Sku    BatchNo    kuwei    Loadkz    Qty    Qty1    Inqty3    Drdate
313    800542    120724809    56112A    503    5    5    NULL    2012-9-18 15:17
314    800542    120724809    56112B    503    6    6    NULL    2012-9-18 15:17
315    800542    120911809    56103B    503    14    1    NULL    2012-9-18 15:17
316    800541    120726801    56F07A    503    1    1    NULL    2012-9-18 15:17
317    800541    120726801    56H10A    503    7    5    NULL    2012-9-18 15:17
318    714339    120726801    56O05A    503    13    6    NULL    2012-9-18 15:17
319    105324    120726801    56O07A    503    1    1    NULL    2012-9-18 15:17
320    105324    120726801    56O07A    503    2    2    NULL    2012-9-18 15:17

最后结果
*/




现在只能发100分的贴子,问题解决在发100分,谢谢!

------解决方案--------------------
SQL code
--> 测试数据:[发货表]
IF OBJECT_ID('[发货表]') IS NOT NULL DROP TABLE [发货表]
GO 
CREATE TABLE [发货表]([ID] INT,[LoadTranNo] VARCHAR(13),[LoadCarriers] VARCHAR(9),[sku] INT,[SKUNAME] VARCHAR(5),[Loadkz] INT,[qty] INT)
INSERT [发货表]
SELECT 117,'H120914000158','深圳市恒7',800542,'A2r',503,10 UNION ALL
SELECT 118,'H120914000158','深圳市恒7',800541,'Cisr',503,6 UNION ALL
SELECT 119,'H120914000178','深圳市恒7',105324,'sarnl',503,3 UNION ALL
SELECT 120,'H120914000178','深圳市恒7',800542,'A2r',503,2 UNION ALL
SELECT 121,'H120914000178','深圳市恒7',714339,'XD2',503,7


--> 测试数据:[库存表]
IF OBJECT_ID('[库存表]') IS NOT NULL DROP TABLE [库存表]
GO 
CREATE TABLE [库存表]([ID] INT,[Sku] INT,[BatchNo] INT,[kuwei] VARCHAR(6),[Loadkz] INT,[Qty] INT,[Qty1] INT,[Inqty3] INT,[Drdate] DATETIME)
INSERT [库存表]
SELECT 313,800542,120724809,'56112A',503,5,NULL,NULL,'2012-9-18 15:17' UNION ALL
SELECT 314,800542,120724809,'56112B',503,6,NULL,NULL,'2012-9-18 15:17' UNION ALL
SELECT 315,800542,120911809,'56103B',503,14,NULL,NULL,'2012-9-18 15:17' UNION ALL
SELECT 316,800541,120726801,'56F07A',503,1,NULL,NULL,'2012-9-18 15:17' UNION ALL
SELECT 317,800541,120726801,'56H10A',503,7,NULL,NULL,'2012-9-18 15:17' UNION ALL
SELECT 318,714339,120726801,'56O05A',503,13,NULL,NULL,'2012-9-18 15:17' UNION ALL
SELECT 319,105324,120726801,'56O07A',503,1,NULL,NULL,'2012-9-18 15:17' UNION ALL
SELECT 320,105324,120726801,'56O07A',503,2,NULL,NULL,'2012-9-18 15:17'
--------------开始查询--------------------------

UPDATE b SET b.qty1=case  when