SQL Server-检索每月数据(未累计)
我有一张有两个字段的桌子 年月日 总数 该表包含全年每月的累计总数。 我想查询每个月的“未累计”总数 例如,201806的总和等于201806的总和减去201805的总和 有小费吗?谢谢 窗口函数可用于根据订单获取以前的值 看起来你只是想从总数中减去上个月的总数SQL Server-检索每月数据(未累计),sql,sql-server,Sql,Sql Server,我有一张有两个字段的桌子 年月日 总数 该表包含全年每月的累计总数。 我想查询每个月的“未累计”总数 例如,201806的总和等于201806的总和减去201805的总和 有小费吗?谢谢 窗口函数可用于根据订单获取以前的值 看起来你只是想从总数中减去上个月的总数 SELECT DATE_YYYYMM, TOTAL, TOTAL - ISNULL(LAG(TOTAL) OVER (ORDER BY DATE_YYYYMM), 0) AS UNACCUMULATED FROM YourYearT
SELECT
DATE_YYYYMM,
TOTAL,
TOTAL - ISNULL(LAG(TOTAL) OVER (ORDER BY DATE_YYYYMM), 0) AS UNACCUMULATED
FROM YourYearTotalsTable
可以使用分析函数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];
你能提供一些样本数据和预期结果吗?有样本数据吗?预期结果?你试了什么?谢谢!这就是我需要的。