以下のテーブルCourse
は、3つのカラムStudent_Name
,Joining_Date
およびBatch_Number
を持っています。 Batch_Number
は、Joining_Date
の月、日付、および年の部分を連結して、Joining_Date
に基づいて計算されます。データベース内更新されている列の値を使用して、SQL Serverのテーブル内の別の列を更新できますか?
1つのエントリが何かのようになります。
Aman | 01/08/2016 | 08012016
は、私が2017年1月8日を言ってJoining_Date
を更新すると、ちょうど1つのクエリでJoining_Date
に基づいてBatch_Number
を更新したいです。
私は2つのステップでそれを達成することができる午前:
第1工程:
UPDATE Course
SET Joining_Date = DATEADD(YEAR, 1, Joining_Date)
WHERE Student_Name = 'Aman'
第二ステップ:
UPDATE Course
SET Batch_Number = CONCAT(RIGHT('0' + RTRIM(DATEPART(MM,Joining_Date)), 2), RIGHT('0' + RTRIM(DATEPART(DD,Joining_Date)), 2), DATEPART(YYYY,Joining_Date))
WHERE Student_Name = 'Aman'
私は1つのステップで上記のことを達成したいです。しようとしたときに、だから:
UPDATE Course
SET Joining_Date = DATEADD(YEAR, 1, Joining_Date),
Batch_Number = CONCAT(RIGHT('0' + RTRIM(DATEPART(MM,Joining_Date)), 2), RIGHT('0' + RTRIM(DATEPART(DD,Joining_Date)), 2), DATEPART(YYYY,Joining_Date))
WHERE Student_Name = 'Aman'
それはBatch_Number
を更新していない、それはそうBatch_Number
は同じままJoining_Date
の古い値を使用しています。
Joining_Date
とBatch_Number
をワンショットで更新することはできますか?
早期の対応に感謝します。
あらかじめ読者に感謝!
それはみんな働く!この長い質問をここに掲載する前に、なぜそれが私の心に来なかったのか分かりません。 皆さんありがとうございます。 –