SQL的运行总计,包括去年年底的总计

需要查询以选择图片中提到的“运行总额”
2017年末总数加上每个月的新数字应加到以前的总数。

https://i.stack.imgur.com/DL7p0.png“示例”

godkid5201314 回答:SQL的运行总计,包括去年年底的总计

下面的脚本将适用于MSSQL,您也可以对其他数据库使用相同的逻辑-

WITH your_table(year,month,partersgrowth)
AS
(
    SELECT '2019','jan',100 UNION ALL
    SELECT '2019','feb',300 UNION ALL
    SELECT '2019','mar',400 UNION ALL
    SELECT '2019','apr',500 UNION ALL
    SELECT '2018','Dec',200
)

SELECT A.year,A.month,A.partersgrowth,(
    SELECT SUM(B.partersgrowth) 
    FROM your_table B 
    WHERE CAST(B.Year +'-'+B.month+'-01' AS DATE) 
        <= CAST(A.Year +'-'+A.month+'-01' AS DATE)
) Running_Total
FROM your_table A
ORDER BY CAST(A.Year +'-'+A.month+'-01' AS DATE)
,

使用@mkRabbani解决方案..您可以像这样简化它:

;WITH your_table(year,200
)

select *,sum(partersgrowth) over ( order by  [year],[month]) as running_total 
from your_table

编辑:正如下面的评论所指出的..您要在总和部分中按正确的日期进行排序(我将按年份排序,然后按月份编号而不是月份名称)

,

如果使用MSSQL,则可以运行以下代码

with cte as (
select t.*,lag(partersGrowth) over(partition by year order by month asc rows ROWS UNBOUNDED PRECEDING) prevTotal
from Table )
select years,partersGrowth,prevTotal || '+' partersGrowth as "Need Running Total"
from cte
本文链接:https://www.f2er.com/3155299.html

大家都在问