VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 917|回复: 3

如何利用sql根据流水账生成月报表

[复制链接]

1

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-2-12 21:00:01 | 显示全部楼层 |阅读模式


流水账格式
日期 仓库 货物名称 入/出库 数量(出库为负数)

生成报表格式为某年某月报表
仓库 货物名称 月初 月入库 月出库 月结存
回复

使用道具 举报

0

主题

49

帖子

35.00

积分

新手上路

Rank: 1

积分
35.00
发表于 2020-4-15 02:00:01 | 显示全部楼层
--假设查询2016年12月报表
declare @month varchar(6)
set @month = '201612'

select 仓库,货物名称,
  月初 = (select sum(数量) from 流水账 where 货物名称 = a.货物名称 and convert(varchar(6),日期,112) < @month),
月入库 = (select sum(case when 数量 > 0 then 数量 else 0 end)
          from 流水账
          where 货物名称 = a.货物名称 and convert(varchar(6),日期,112) = @month),
月出库 = (select sum(case when 数量 < 0 then - 数量 else 0 end)
          from 流水账
          where 货物名称 = a.货物名称 and convert(varchar(6),日期,112) = @month),
月结存 = (select sum(数量) from 流水账 where 货物名称 = a.货物名称 and convert(varchar(6),日期,112) <= @month)
from 流水账 a


--因为以前的数据已经不能再发生变化,所以建议楼主把数据导出到另外一个表
查询的时候直接查速度会快很多!
回复

使用道具 举报

1

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-5-6 10:00:01 | 显示全部楼层
谢谢michealhenry
在sql查询分析器中可以,还有如何去掉月初和月入库都是0的行
另外在access数据库可以用吗?
回复

使用道具 举报

1

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-5-6 18:30:02 | 显示全部楼层
CONVERT在access中可以用吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表