求按月分类统计累加的SQL语句

SKY1006 2005-07-15 11:22:33
有一个库存表为T_ProductionPro ,要求按月分类统计其库存数量,下面是一段按月分类统计的SQL语句

SELECT month(fsProdate) as 月份,fsProName as 货物名,fssize as 规格,fsunit as 单位,sum(fsweight) as 库存数量
FROM T_ProductionPro
WHERE year(fsProdate)='2005'
GROUP BY month(fsProdate),fsproname,fssize,fsunit

但这库存数量的统计出来的结果是该月1号到该月末的结果
如从1月1日到1月末买了10本笔记本,2月1日到2月末买了20本笔记本,3月1日到3月末买了30本笔记本
即:

月份 货物名 规格 单位 库存数量
1 笔记本 硬皮 本 10
2 笔记本 硬皮 本 20
3 笔记本 硬皮 本 30


所要求的显示是该1号到月末的库存+以前累加月库存

即:

月份 货物名 规格 单位 库存数量
1 笔记本 硬皮 本 10
2 笔记本 硬皮 本 30
3 笔记本 硬皮 本 60

请问这样的SQL语句怎么写呀
...全文
726 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
SKY1006 2005-07-15
  • 打赏
  • 举报
回复
我的表结构:
CREATE TABLE [T_ProductionPro] (
[fsProDate] [datetime] NULL ,
[fsWorkDate] [datetime] NULL ,
[fsAvailDate] [datetime] NULL ,
[fsNo] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[fsBatchNo] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[fsBarcodeNo] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
[fsProNo] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL ,
[fsProName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[fsSize] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[fsUnit] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL ,
[fsWeight] [bigint] NULL ,
[fsWHMen] [varchar] (16) COLLATE Chinese_PRC_CI_AS NULL ,
[fswarehouse] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
我的表数据为:
fsProdate fsproName fssize fsunit fsweight
2005-1-1 笔记本 硬皮 本 5
2005-1-2 笔记本 硬皮 本 5
2005-2-1 笔记本 硬皮 本 10
2005-2-2 笔记本 硬皮 本 10
2005-3-1 笔记本 硬皮 本 30
zhaolaoxin 2005-07-15
  • 打赏
  • 举报
回复
用一条语句恐怕不行,需要三条语句,头两条要将结果保存到临时表中
SELECT month(fsProdate) as 月份,fsProName as 货物名,fssize as 规格,fsunit as 单位,sum(fsweight) as 库存数量
into t1
FROM T_ProductionPro
WHERE year(fsProdate)='2005'
GROUP BY month(fsProdate),fsproname,fssize,fsunit

select a.*, b.库存数量 as ss
into t2
from t1 a left join t1 b
on a.月份 >= b.月份

然后再执行一次group by操作即可

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧