SQL Server-检索每月数据(未累积)

时间:2018-08-21 19:15:20

标签: sql sql-server

我有一个包含两个字段的表

DATE_YYYYMM 总计

该表包含全年的每月累积总数。 我想要一个查询来检索每个月的“未累计”总数。

例如,201806的总数等于201806的总数减去201805的总数。

请给我小费吗?谢谢!

2 个答案:

答案 0 :(得分:1)

窗口函数LAG可用于基于订单获取先前的值。

看来您只想从总数中减去上个月的总数。

SELECT 
DATE_YYYYMM, 
TOTAL,
TOTAL - ISNULL(LAG(TOTAL) OVER (ORDER BY DATE_YYYYMM), 0) AS UNACCUMULATED
FROM YourYearTotalsTable

答案 1 :(得分:0)

您可以使用分析功能LAG(从sql-server-2012开始)将当前行中的值与上一行中的值进行比较。

SELECT
     [date_yyyymm]
    ,[current_total] = [total]
    ,[previous_total] = LAG([total], 1, 0) OVER (ORDER BY [date_yyyymm])
    ,[unacumulated] = [total] - LAG([total], 1, 0) OVER (ORDER BY [date_yyyymm])
FROM [your_table]
ORDER BY [date_yyyymm];