高手救命 (100分)

  • 主题发起人 penglin3000
  • 开始时间
P

penglin3000

Unregistered / Unconfirmed
GUEST, unregistred user!
类型 名称 数量
期初 01 10
期初 01 20
入库 01 2
入库 01 3
入库 02 8
出库 01 6
出库 02 7
出库 04 1

如何用一句 SQL 汇总后如下

名称 期初数量 入库数量 出库数量
01 30 5 6
02 0 8 7
04 0 0 1
 
你这个结构可有点乱啊!呵呵!
 
select 名称,sum(期初),sum( 入库),sum(出库) from yourtable group by 名称
 
你这个表结构不是很好吧?
你至少应该入库一个表,出库一个表
然后根据出入库的时间段来生成报表
如:
select 产品名称,
期初库存=((select isnull(sum(数量),0) from data_jkb where (产品编号=data_kcb.产品编号) and (进货日期<=@begindate))-(select isnull(sum(数量),0) as b from data_lyb where (产品编号=data_kcb.产品编号) and (领用日期<=@begindate))),
本期调入=(select isnull(sum(数量),0) from data_jkb where (产品编号=data_kcb.产品编号) and (进货日期>@begindate) and (进货日期<=@enddate)),
本期调出=(select isnull(sum(数量),0) from data_lyb where (产品编号=data_kcb.产品编号) and (领用日期>@begindate) and (领用日期<=@enddate)),
期末库存=((select isnull(sum(数量),0) from data_jkb where (产品编号=data_kcb.产品编号) and (进货日期<=@enddate))-(select isnull(sum(数量),0) from data_lyb where (产品编号=data_kcb.产品编号) and (领用日期<=@enddate)))
into #temp1 from data_kcb
其中@begindate为时间段起始点
@enddate为时间段结束点
 
顶部