出席表に次のデータがあります。
Staff_ID | User_Attend_Date | Business_Day
S01 | 2013-05-01 15:18:45.537 | 2013-05-01
S01 | 2013-05-02 00:00:00.000 | 2013-05-01
S02 | 2013-05-03 06:20:30.225 | 2013-05-02
スタッフのチェックイン日から 3 時間を引いた日付が営業日と同じ日かどうかを確認する新しい列を表示したいと考えています。営業日と同じであれば、User_Attend_Date のままです。結果は次のようになります。
Staff_ID | User_Attend_Date | Business_Day | Check_Same_Day
S01 | 2013-05-01 15:18:45.537 | 2013-05-01 | 2013-05-01 15:18:45.537
S01 | 2013-05-02 00:00:00.000 | 2013-05-01 | 2013-05-01 15:18:45.537
S02 | 2013-05-03 06:20:30.225 | 2013-05-02 | 2013-05-03 06:20:30.225
次のコードを試してみましたが、結果を達成できませんでした。
SELECT *, Case WHEN DATEADD(hh, -3, User_Attend_Date)=Business_Day
THEN User_Attend_Date ELSE BusinessDay END As 'Check_Same_Day' FROM tblAttendance
パーティションを使用しようとしましたが、失敗しました。
DATEADD(hh, -3, User_Attend_Date) OVER (PARTITION BY BusinessDay) AS 'Check_Same_Day'
誰かが私に教えてくれることを願っています.Thanks