如何計算有盤點,出庫,入庫的商品數量 -开发者知识库

如何計算有盤點,出庫,入庫的商品數量 -开发者知识库,第1张

商品出入庫表
 item_ID   pro_id(產品ID)  pro_name(品名)    chitty_sort(單據類型)  數量
 1        1             電視               入庫單                2
 2        1             電視               盤點單                5
 3        1             電視               入庫單                2
 4        1             電視               出庫單                -1
 5        2             空調               入庫單                5
 6        2             空調               出庫單                2
 7        2             空調               盤點單                6


計算方式:
如某商品item_ID最大值是盤點單,商品的數量為盤點數量,如空調最后一條記錄是盤點單,則數量就為6
否則以盤點單的item_id 為起始行,進行求和計算,如電視盤點單item_id為2,從這一行開始計算數量,就是
5 2 (-1)=6
得到如下結果
pro_id(產品ID)  pro_name(品名)     總數量
   1               電視              6
   2               空調              6

5 个解决方案

#1



drop table #a
create table #a(item_ID int,pro_id varchar(20),pro_name varchar(20),chitty_sort varchar(10),qty int)
insert into #a(item_ID,pro_id,pro_name,chitty_sort,qty)
select'1','1','電視' ,'入庫單 ',2 union all
select'2','1','電視' ,'盤點單 ',5 union all
select'3','1','電視' ,'入庫單 ',2 union all
select'4','1','電視' ,'出庫單 ',-1 union all
select'5','2','空調' ,'入庫單',5 union all
select'6','2','空調' ,'出庫單 ',2 union all
select'7','2','空調' ,'盤點單 ',6 union all
select'8','3','電視' ,'盤點單 ',2 union all
select'9','3','電視' ,'入庫單 ',5 union all
select'10','3','電視' ,'入庫單 ',2 union all
select'11','3','電視' ,'出庫單 ',-1 

select a.pro_id,sum(a.qty) from #a a 
where not exists(select 1 from #a  x where x.chitty_sort='盤點單' and a.pro_id=x.pro_id and x.item_ID>a.item_ID)
GROUP BY pro_id



1 6
2 6
3 8

最佳答案:

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复