读书人

简单Sql语句有点有关问题

发布时间: 2012-09-04 14:19:30 作者: rapoo

简单Sql语句有点问题!

SQL code
--       新库存  旧库存  变更库存--公式:NewQty= OldQty + AddedQty  即可: 100+(-1)=99select Id,skuId,StockId ,OldQty, NewQty, AddedQty,OperateTime from V_Wms_StockLog--     1    1   , 2     , 100  ,  99   ,  -1    , '2012-5-25'--     2    1   , 2     , 99   ,  98   ,  -1    , '2012-5-26'--     3    1   , 2     , 98   ,  97   ,  -1    , '2012-5-27'--     4    1   , 2     , 97   ,  98   ,   1    , '2012-5-28'--     5    1   , 2     , 98   ,  100  ,   2    , '2012-5-29'--求   skuId,StockId,OldQty--提示:现在用聚合函数sum(AddedQty) ,在用新库存 -  变更库存数量(AddedQty) --结果是:skuId   StockId  OldQty--         1        2      100我写的--select LocStock.SkuId,LocStock.StockId,isnull(sum(LocStock.TotalQty-AddedQty),0)as InitStockQty from V_Wms_LocStock  LocStock left join (select skuId,StockId,isnull(sum(stockLog.AddedQty),0) as AddedQty from  V_Wms_StockLog stockLoggroup by skuId,StockId) Wms_stockLog on LocStock.SkuId =LocStock.StockIdgroup by LocStock.SkuId,LocStock.StockId--结果:全部是0 这个是错误的  --SkuId       StockId     InitStockQty------------- ----------- ----------------------1            2             0


[解决办法]
用新库存字段减去变更的再sum不就好了,干嘛还要left join??
SQL code
select  SkuId,StockId,isnull(sum(NewQty),0)-isnull(sum(AddedQty),0) as InitStockQty from V_Wms_LocStock  group by   SkuId,StockId
[解决办法]
楼主需求是什么意思?
[解决办法]
sum(LocStock.TotalQty-AddedQty
这个TotalQty哪里来的?
[解决办法]

提问也是一种技巧
[解决办法]
什么啊
[解决办法]
SQL code
declare @V_Wms_StockLog table (Id int,skuId int,StockId int,OldQty int,NewQty int,AddedQty int,OperateTime datetime)insert into @V_Wms_StockLogselect 1,1,2,100,99,-1,'2012-5-25' union allselect 2,1,2,99,98,-1,'2012-5-26' union allselect 3,1,2,98,97,-1,'2012-5-27' union allselect 4,1,2,97,98,1,'2012-5-28' union allselect 5,1,2,98,100,2,'2012-5-29'select top 1 skuId,StockId,sum(OldQty) as OldQty1,sum(NewQty-AddedQty) as OldQty2 from @V_Wms_StockLog group by skuId,StockId,ID/*skuId       StockId     OldQty1     OldQty2----------- ----------- ----------- -----------1           2           100         100*/ 

读书人网 >SQL Server

热点推荐