私が達成しようとしていることを行うよりエレガントな(または単に「正しい」)方法があると確信しています。私はカーソルを使用する必要があると信じていますが、どうやって頭を包み込むことはできません。tSQLでのカーソルの作成
私は契約で残り日数を見つけるために、以下のコードを持っているが、私は(基本的には、特定のレコードを選択)「どこ」節を入れない限り、私はこのエラーメッセージを取得:
「サブクエリを1つ以上の値を返しました '
だから、私はカーソルが必要だと思うのです。レコードをループし、契約書に残っている日数でフィールドを更新します。
これは私が持っているもので、数字を返すように機能します。
DECLARE @TodaysDT date = GetDate()
DECLARE @ContractExpirationDT date =
(SELECT ExprDt from CONTRACTS
WHERE ID = 274);
DECLARE @DaysRemaining INT =
(SELECT DATEDIFF(dd, @ContractExpirationDT,@TodaysDT));
Print @DaysRemaining;
これは、特定のレコードIDの正しい値(この場合、ID 274)私は、各レコードをステップ、および次いで各レコード内のフィールドを更新するために、カーソルを使用するにはどうすればよい
を返します@DaysRemaining
値?
ありがとうございました!