sql(200分)

  • 主题发起人 主题发起人 brink
  • 开始时间 开始时间
B

brink

Unregistered / Unconfirmed
GUEST, unregistred user!
现有
表RK(入库表)
字段 产品代码,入库数量,入库日期

表cK(出库表)
字段 产品代码,出库数量,出库方式,出库日期,领用人

表qcjc(期初库存)
字段 产品代码,期初数量

表fz(服装表)
字段 产品代码,产品名称,规格型号
如何根据fzbm,统计出如下的月报表,有何简便的方法,
产品代码,产品名称,规格型号,上月库存,本月入库,本月出库,本月库存
领用|购买

有怎么样好方法,小弟不胜感激
 
基本上可以这样
select fz.产品代码,fz.产品名称,fz.规格型号,
qcjc.期初数量+sum(case when rk.入库日期<datename(yy,getdate())+'.'+datename(mm,getdate())+'.01' then isnull(rk.入库数量,0) else 0 end )
-sum(case when ck.出库日期<datename(yy,getdate())+'.'+datename(mm,getdate())+'.01' then isnull(ck.出库数量,0) else 0 end ) as 上月库存,
sum(case when datename(yy,rk.入库日期)+'.'+datename(yy,rk.入库日期)=datename(yy,getdate())+'.'+datename(mm,getdate()) then isnull(rk.入库数量,0) else 0 end ) as 本月入库,
sum(case when datename(yy,ck.出库日期)+'.'+datename(yy,ck.出库日期)=datename(yy,getdate())+'.'+datename(mm,getdate()) then isnull(ck.出库数量,0) else 0 end ) as 本月出库,
qcjc.期初数量+sum(case when datename(yy,rk.入库日期)+'.'+datename(yy,rk.入库日期)<=datename(yy,getdate())+'.'+datename(mm,getdate()) then isnull(rk.入库数量,0) else 0 end )
-sum(case when datename(yy,ck.出库日期)+'.'+datename(yy,ck.出库日期)<=datename(yy,getdate())+'.'+datename(mm,getdate()) then isnull(ck.出库数量,0) else 0 end ) as 本月库存
from fz
left join rk on fz.产品代码=rk.产品代码
left join rk on fz.产品代码=ck.产品代码
left join qcjc on fz.产品代码=qcjc.产品代码
group by fz.产品代码,fz.产品名称,fz.规格型号,qcjc.期初数量

领用和购买由于表中没有相关信息,所以统计不了



 
同意楼上
 
我试试,
多谢程式猎人,领用和购买我自己解决
 
后退
顶部