使用SQL Server上个月YYYYMM的日期进行计算



我正在使用Microsoft SQL Server Management Studio,我正在尝试执行以下操作:我想进行一次计算,查找过去2个月的"当前";月

月份和年份定义如下:

SELECT
ID,
dc.Year * 100 + dc.MonthOfYear AS YYYMM,
dc.Year * 100 + dc.MonthOfYear - 1 AS PrevMonth,
COUNT(1) AS Count_sales,
SUM(sales) AS TotalSales
FROM
xx (NOLOCK) dc
GROUP BY
dc.Year * 100 + dc.[Month Of Year] 

当我有202101时就会出现问题,因为前一个月被视为202102。你知道如何处理年份变化吗?

我尝试过使用以下内容,但在SQL Server中,add_months函数不存在:

配置单元SQL整数YYYYMM前几个月

有什么建议吗?

这不是最漂亮的代码,但您可以在这里使用案例:

select 
ID
,dc.Year*100+dc.MonthOfYear as YYYMM
,case when dc.MonthOfYear = 1 then dc.Year-1 else dc.Year end * 100 + dc.MonthOfYear - (case when dc.MonthOfYear = 1 then -11 else 1 end) as PrevMonth
,dc.MonthOfYear-case when dc.MonthOfYear = 1 then -11 else 1 end as PrevMonthXX
,count(1) as Count_sales
,sum(sales) as TotalSales
from xx (nolock) dc
group by dc.Year*100+dc.[Month Of Year] 

通常情况下,把它存为一个固定的日期更容易,如果你以后需要的话,只需拿出一年或一个月。但有时你只能将就一下。。

最新更新