SQL Server 2012按日期运行总计

时间:2019-11-07 09:13:48

标签: sql sql-server-2012

我有一个表,其中包含[月/年],[日期],[数量]列

当我运行此查询时,“ 从VOLUME中选择[月/年],[日期],sum([卷])作为'sum',其中[月/年] ='2018-10-01'组按[月/年],按[日期]按[日期] 排序”,它将显示以下内容:

    [Month/Year]   [Date]   [Volume]
    2018-10-01  2018-10-15  2000
    2018-10-01  2018-10-16  4000
    2018-10-01  2018-10-17  7000
    2018-10-01  2018-10-18  6000
    2018-10-01  2018-10-19  7000
    2018-10-01  2018-10-20  7000
    2018-10-01  2018-10-21  8000
    2018-10-01  2018-10-22  9000
    2018-10-01  2018-10-23  11000
    2018-10-01  2018-10-24  10000
    2018-10-01  2018-10-25  13000
    2018-10-01  2018-10-26  12000
    2018-10-01  2018-10-27  8000
    2018-10-01  2018-10-28  8000
    2018-10-01  2018-10-29  9000
    2018-10-01  2018-10-30  8000

当我运行此查询时,它给我的输出是错误的:

select a.[date], SUM(b.[Volume]) as barge_sum
from VOLUME a
INNER JOIN VOLUME b ON a.[date] >= b.[date]
where a.[Month/Year] = '2018-10-01'
group by a.[date]
order by a.[date]

输出:

2018-10-15  4000
2018-10-16  24000
2018-10-17  91000
2018-10-18  114000
2018-10-19  182000
2018-10-20  231000
2018-10-21  328000
2018-10-22  450000
2018-10-23  671000
2018-10-24  710000
2018-10-25  1092000
2018-10-26  1152000
2018-10-27  832000
2018-10-28  896000
2018-10-29  1089000
2018-10-30  1032000

输出应该以这种方式累积:

enter image description here

我在做什么错?有人可以协助吗?

1 个答案:

答案 0 :(得分:1)

您可以使用窗口功能sum()

select a.[date], SUM(a.[Volume]) over(order by  a.[date]) as barge_sum
from VOLUME a
where a.[Month/Year] = '2018-10-01'