数据库有 A B C 3个不同ITEM, 每天生产量已经知道, 求每天生产量总和 如: 每天生产量
1月1号 1月2号 1月3号 1月4号
A 5 7 8 9
B 7 7 8 8
C 6 7 8 7现在我想要个SQL语句, 结果是这样的:
1月1号 1月2号 1月3号 1月4号
A 5 12 20 29
B 7 14 22 30
C 6 13 21 28就是截至到当天的总生产量, 谢谢大家了
1月1号 1月2号 1月3号 1月4号
A 5 7 8 9
B 7 7 8 8
C 6 7 8 7现在我想要个SQL语句, 结果是这样的:
1月1号 1月2号 1月3号 1月4号
A 5 12 20 29
B 7 14 22 30
C 6 13 21 28就是截至到当天的总生产量, 谢谢大家了
select
1月1号,
1月1号+1月2号 as 1月2号,
1月1号+1月2号+1月3号 as 1月3号,
1月1号+1月2号+1月3号+1月4号 as 1月4号
from tb
1月1号 1月2号 1月3号 1月4号
A 5 7 8 9
B 7 7 8 8
C 6 7 8 7
因为选择的日期都是不定的, 有可能短时间, 也有可能非常长的时间
SELECT SUM(production.Production.Volume) AS Volume, production.Grade.GradeName, CONVERT(varchar(10), production.Production.CutDate, 120) AS CutDate
FROM production.Production INNER JOIN
production.Grade ON production.Production.GradeID = production.Grade.GradeID
GROUP BY CONVERT(varchar(10), production.Production.CutDate, 120), production.Grade.GradeName
这是从表里选择出我需要的数据, 就是每天每个GRADE的VOLUME量, 可是我想在选完以后, 每个日期再加上之前日期的VOLUME量(第1天除外)
如果改成纵向存储就好实现了。A 1月1号 5
A 1月2号 7
A 1月3号 8
A 1月4号 9
A 1月1号 5
A 1月2号 7
A 1月3号 8
A 1月4号 9 B 1月1号 7
B 1月2号 7
B 1月3号 8
B 1月4号 8 C 1月1号 6
C 1月2号 7
C 1月3号 8
C 1月4号 7 变成名称 日期 生产量
A 1月1号 5
A 1月2号 12
A 1月3号 20
A 1月4号 29 B 1月1号 7
B 1月2号 14
B 1月3号 22
B 1月4号 30 C 1月1号 6
C 1月2号 13
C 1月3号 21
C 1月4号 28这是你要的结构吗??
那么就得到从第一天到你输入这个时间的生产量的总合对吧?如果是,可以用下面的语句
select sum(生产量A)as A,sum(生产量B)as B,sum(生产量C)as C from 表 where 时间 < '输入的时间'如果只是求两个时间之间的总和,可以用下面的select sum(生产量A)as A,sum(生产量B)as B,sum(生产量C)as C from 表 where 时间 between '开始时间' and '结束时间'
比如说选择从1月7号到1月16号, 那么就显示这几天每天的总和C 1月7号 6 (7号)
C 1月8号 13 (7号+8号)
C 1月9号 21 ...
C 1月10号 28
C 1月11号 35
C 1月12号 48
C 1月13号 57
C 1月14号 63
C 1月15号 70
C 1月16号 78
C 1月17号 88
select a.名称,a.日期,sum(b.生产量)
from yourTable a inner join yourTable b on a.名称=b.名称 and a.日期>=b.日期
group by a.名称,a.日期