У меня есть запрос, подобный следующему:
SELECT A.a, A.b, B.c,
(CASE WHEN ... THEN ... ELSE ... END) AS CalculatedValue,
B.d
FROM dbo.TableA A INNER JOIN
dbo.TableB B ON (...)
WHERE (CASE WHEN ... THEN ... ELSE ... END) BETWEEN @DayStart AND @DayEnd
GROUP BY A.a, (CASE WHEN ... THEN ... ELSE ... END), B.c
, чтобы избежать многократного повторения одного и того же выражения: (CASE WHEN ... THEN ... ELSE ... END)
Я хотел определить CTE и запросить такую таблицу, используя в select, где исгруппировать по выражению CalculatedValue
к сожалению, это не работает, потому что выбор должен уже включать group by
при создании CTE
, есть ли другой способ, который я мог бы использовать дляне повторять CASE WHEN...
столько раз?