У меня есть такая таблица
![Table](https://i.stack.imgur.com/xF62r.png)
А потом я хочу добавить столбец помимо общего столбца. Столбец LastMonthTotal с той же записью, но дата - в прошлом месяце. как я могу получить его?
вот здесь DDL
CREATE TABLE [dbo].[ERA_Report2](
[RESULT] [nvarchar](255) NULL,
[CLASSIFICATION_2] [nvarchar](255) NULL,
[ARMADA] [nvarchar](255) NULL,
[CDAREA] [nvarchar](255) NULL,
[BRAND] [nvarchar](255) NULL,
[MODEL] [nvarchar](255) NULL,
[Shift] [nvarchar](255) NULL,
[AST_POINT] [nvarchar](255) NULL,
[SOURCE] [nvarchar](255) NULL,
[AREA] [nvarchar](255) NULL,
[POST DATE] [nvarchar](255) NULL,
[PRICE] [float] NULL,
[DISC] [float] NULL,
[Net Payment] [float] NULL
)
мой запрос, подобный этому,
WITH step1 AS (
SELECT [RESULT],[CLASSIFICATION_2],[ARMADA],[CDAREA],[BRAND],[MODEL],[Shift],[AST_POINT],[SOURCE],[AREA]
,CONVERT(DATE, [POST DATE]) AS [POST DATE],COUNT(*) AS Total
FROM [AstraWorldDB].[dbo].[ERA_Report2]
GROUP BY [RESULT],[CLASSIFICATION_2],[ARMADA],[CDAREA],[BRAND],[MODEL],[Shift],[AST_POINT],[SOURCE],[AREA]
,[POST DATE]
),
step2 AS (
SELECT [RESULT],[CLASSIFICATION_2],[ARMADA],[CDAREA],[BRAND],[MODEL],[Shift],[AST_POINT],[SOURCE],[AREA]
,[POST DATE],Total
,CASE
WHEN MONTH([POST DATE]) > DATEPART(MONTH, DATEADD(MONTH, -1, [POST DATE]))
THEN (SELECT COUNT(*)
FROM step1
WHERE DATEPART(MONTH, [POST DATE]) = DATEPART(MONTH, DATEADD(MONTH, -1, [POST DATE])) AND
DATEPART(YEAR, [POST DATE]) = DATEPART(YEAR, DATEADD(MONTH, -1, [POST DATE]))
)
ELSE '0'
END AS LastMonthTotal
FROM step1
)
SELECT *
FROM step2
WHERE AREA = 'DPS'
ORDER BY [POST DATE]
, но он возвращает 0, когда не должен. Это результат, результат
, где POST DATE = 2020-02-01, LastMonthTotal должен быть 2.