Я пытаюсь выполнить следующий запрос и получаю сообщение об ошибке. Я пытаюсь рассчитать YTD и Previous YTD в одном запросе.
Сообщение 102, Уровень 15, Состояние 1, Строка 28 Неверный синтаксис рядом с 'order'.
WITH
grouped_by_date AS
(
SELECT
[Sales_Organization],
[Market_Grp],
[Delivery_Year],
[Delivery_Month],
[Invoicing_Day],
SUM(QTY_UoM) AS Weight
FROM
tmp.factsales s
GROUP BY
[Sales_Organization],
[Market_Grp],
[Delivery_Year],
[Delivery_Month],
[Invoicing_Day]
),
cumulative_sum_for_ytd AS
(
SELECT
*,
SUM([Weight]) OVER (PARTITION BY [Delivery_Year] ORDER BY [Delivery_Month], [Invoicing_Day]
)
AS Weight_YTD
FROM
grouped_by_date
),
hack_to_do_lag AS
(
SELECT
*,
CASE
WHEN [Delivery_Year]%2=1
THEN MAX(CASE WHEN [Delivery_Year]%2=0 THEN [Weight_YTD] END) OVER (PARTITION BY ([Delivery_Year]+0)/2)
ELSE MAX(CASE WHEN [Delivery_Year]%2=1 THEN [Weight_YTD] END) OVER (PARTITION BY ([Delivery_Year]+1)/2)
END
AS Weight_PreviousYTD
FROM
cumulative_sum_for_ytd
)
SELECT
*
FROM
hack_to_do_lag
Я искал в Google, кажется, проблема с ссылкой на версию, которую я использовал, на самом деле:
SELECT @@VERSION
Microsoft SQL Server 2008 R2 (SP3) - 10.50.6220.0 (X64) 19 марта 2015 г.
12:32:14 Авторское право (c) Microsoft Corporation Enterprise Edition
(64-разрядная версия) в Windows NT 6.3 (сборка 9600:) (гипервизор)
Как я мог решить мою проблему? Я не могу изменить версию.