私が作業しているレポートがあります。レポートにはいくつかのパラメータが渡されています。それらの1つはコンマで操作される一連のUserIdです。これらは分割され、テーブル変数に送られます。クエリの側では、値を合計できる必要があります。これらの合計のうちのいくつかでは、この値を合計に加算する必要があり、別の場合には加算しません。コードは次のようになります...テーブル変数の値のチェックを含むケースステートメントの合計
SELECT
TrnId,
TrnCode,
(SUM(CASE WHEN PolicyUseId in (select UseId From @Table) then TotalPremium else 0 end)) as Value
AnotherColumn
FROM SomeTableJoinedOnOtherThings
私が午前問題はこれです...「集約またはサブクエリを含む式に集約関数を実行できません。」これは、私が想定しているのは、INテーブルのチェックです。
私はクエリを渡すパラメータのチェックだけをしていることを除いて、これとちょうど別のレポートがあります。
(CASE PolicyUseId when @UseId then PriceColumn else 0 end)
このクエリは正しく機能し、すべての計算が正しく実行されます。私は2つのデータセットを選択して残念なことにそれらを追加する方法を決定する必要があるので、選択行にこのケースステートメントなしで合計を正しく取得する方法を正確には分かりません。どんな助言も素晴らしいでしょう。
もし 'SUM'を削除したら、それは動作しましたか?... CTEをやっていたらどうですか? – Hackerman