我还是SQL新手
我的桌子 列:InDate,销售
我想比较从今天开始的12个月与过去12个月的销售情况
我需要什么:
Current Month | Sale | Past Month | Sale
Nov | $550 | Nov | $450
我可以使用以下查询获得当前的12个滚动月份:
SELECT SO_VInv.InvDate
FROM SO_VInv
where SO_VInv.InvDate >= DATEADD(month, -12, GETDATE())
我可以使用以下查询获得当前的24个滚动月份:
SELECT SO_VInv.InvDate
FROM SO_VInv
where SO_VInv.InvDate >= DATEADD(month, -24, GETDATE())
但是我不知道如何度过过去的12个月,例如从2017年2月11日至2018年2月11日,超过12个月,且没有固定日期。
答案 0 :(得分:0)
如果您每月有一行,请使用窗口功能:
SELECT i.InvDate,
i.sale,
SUM(i.sale) OVER (ORDER BY i.InvDate
ROWS BETWEEN 11 PRECEDING AND CURRENT ROW
) as sales_rolling_12
FROM SO_VInv i;