У меня есть запрос следующего вида:
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 и запросить такую таблицу, используя в выборе, где и группировать по выражению CalculatedValue
к сожалению, это не работает, потому что выбор уже должен включать group by
при создании CTE
есть ли другой способ не повторять CASE WHEN...
столько раз?