次のようなクエリがあります。
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、where、および group by 式を使用してそのようなテーブルをクエリしたかったCalculatedValue
残念ながら、これは機能しませんgroup by
。CTE
何度も繰り返さないようにするために使用できる他の方法はありますCASE WHEN...
か?