怎么统计年度期初余额、年入库额、年出库额、年期末余额
如何统计年度期初余额、年入库额、年出库额、年期末余额?
请教一个问题:
利用库存商品明细数据(年度月份如201401,库号、库存商品代码、期初余额、本月入库额、本月出库额,期末余额),统计每月库存:select 年度月份,sum(期初余额),sum(本月入库额),sum(本月出库额),sum(期末余额) from 库存盘点 group by 年度月份;
这是由库存明细盘点产生的统计报表,现在想按年度统计 ,如果用这个方式:
select left(年度月份,4),sum(期初余额),sum(本月入库额),sum(本月出库额),sum(期末余额) from 库存盘点 group by left(年度月份,4)
这样统计数据的期初余额和期末余额是不正确的,如何提取本年度的期初余额(年度1月份的期初余额)和本年度的期末余额(年度12月份的期末额)呢?
------解决思路----------------------
把表结构和部分数据贴出来,还有想得到的预期结果是怎么样的?
------解决思路----------------------
------解决思路----------------------
没有元数据不太好写,
前面貌似把别名搞错了。你试试这个
------解决思路----------------------
这样啊,取当年最大的月份就OK了
请教一个问题:
利用库存商品明细数据(年度月份如201401,库号、库存商品代码、期初余额、本月入库额、本月出库额,期末余额),统计每月库存:select 年度月份,sum(期初余额),sum(本月入库额),sum(本月出库额),sum(期末余额) from 库存盘点 group by 年度月份;
这是由库存明细盘点产生的统计报表,现在想按年度统计 ,如果用这个方式:
select left(年度月份,4),sum(期初余额),sum(本月入库额),sum(本月出库额),sum(期末余额) from 库存盘点 group by left(年度月份,4)
这样统计数据的期初余额和期末余额是不正确的,如何提取本年度的期初余额(年度1月份的期初余额)和本年度的期末余额(年度12月份的期末额)呢?
------解决思路----------------------
把表结构和部分数据贴出来,还有想得到的预期结果是怎么样的?
------解决思路----------------------
select left(年度月份,4),sum(期初余额),sum(本月入库额),sum(本月出库额),sum(期末余额)
from 库存盘点
where cast(right(年度月份,2) as int) in(1,12)
group by 年度月份
------解决思路----------------------
没有元数据不太好写,
select left(a.年度月份,4) as 年度月份,sum(本月入库额) as 本年入库额,
sum(本月出库额) as 本年出库额,min(b.期初数据) as 本年期初数据,min(c.期末数据) as 本年期末数据
from 库存盘点 a join (select 年度月份,sum(期初数据) as 期初数据 from 库存盘点 as t
where right(年度月份,2)='01' group by 年度月份) b on left(a.年度月份,4)=left(b.年度月份,4)
join (select 年度月份,sum(期末数据) as 期末数据
from 库存盘点 where right(年度月份,2)=
(select MAX(right(年度月份,2) from 库存盘点 as t1 where LEFT(t1.年度月份,4)=LEFT(t.年度月份,4) )
group by 年度月份) c
on left(a.年度月份,4)=left(c.年度月份,4)
group by left(a.年度月份,4)
order by left(a.年度月份,4)
前面貌似把别名搞错了。你试试这个
------解决思路----------------------
这样啊,取当年最大的月份就OK了
select left(a.年度月份,4) as 年度,
(select sum(期初余额) from 库存盘点 where 年度月份=cast(left(a.年度月份,4) as varchar(4))+'01') as 年度1月份的期初余额,
sum(a.本月入库额) as 年度入库额
,sum(a.本月出库额) 年度出库额,
(select sum(期末余额) from 库存盘点
where 年度月份=cast(left(a.年度月份,4) as varchar(4))+right('00'+cast(max(right(a.年度月份,2)) as varchar(2)),2)) as 年度12月份的期末额
from 库存盘点 as a group by left(a.年度月份,4)