declare @week1S DATE = '07/01/2016';
declare @week1E DATE = '07/07/2016';
WITH A as (
SELECT COUNT(ARB_accomplished) as ARB_accomplished_CNT
FROM arbimport
WHERE Requested_date between @week1S and @week1E AND arb_accomplished LIKE 'Y'
GROUP BY dispatch_group_name
)
Update ArbitrageResponse
Set arb_count1 = (SELECT ARB_accomplished_CNT FROM A)
別のテーブルの応答の数に基づいて1つのテーブルの列を更新しようとしています。私はdispgroupsをグループ化しようとしています。インポートテーブルが大量であるため、選択した日付範囲にフィルタリングしようとしています。私はこれをたくさん動かさなければならないので、変数を保持するのはクールですが、必要はありません。複数の値を返すサブクエリ...許可されていません
私の応答テーブルは毎週レスポンスを記録したいので、私はこのテーブルに追加されたカラムが必要なので、私はアップデートをしました。
は、私はエラーを取得しています
「サブクエリ以上1つの値。これは、サブクエリが=、!=、<は、< =、>、> =またはサブクエリは次のように使用されたときに、次の時に許可されていない返さ表現。"
サブクエリで呼び出されている変数と変数が関係しているかどうかはわかりません。サブクエリが多くの異なる行の集計結果を返すことがわかります。これを行うより良い方法はありますか?
サンプル・データ、所望の結果でしょうあなたがしようとしていることを伝えるのに本当に役立ちます。エラーメッセージは非常に明確です。あなたがしたいことはありません。 –
あなたのクエリ 'SELECT ARB_accomplished_CNT FROM A'は、dispatch_group_nameでグループ化してから複数の値を返します。 niketshah90のように、dispatch_group_name – niketshah90
に基づいてarb_count1を更新している場合は、UPDATEステートメントでjoinを使用することをお勧めします。UPDATE AR SET arb_count1 = A.ARB_accomplished_CNT FROM ArbitrageResponse AR JOIN A ON A.dispatch_group_name = AR.dispatch_group_name'を作成し、CTEにdispatch_group_nameを含めるように変更してください... – ZLK