現在の曜日によって異なる日付までレコードをチェックする必要があります。SQLの場所曜日によって異なります
金曜日には、次週の次の日曜日まで見ることが必要です。それ以外の日には、来週の日曜日まで現在の週をチェックする必要があります。
私は以下のとおりですが、構文エラーのため動作しません。 CASE WHEN
をWHERE
句の中に入れることはできますか?
WHERE
T0.[Status] IN ('R','P')
AND
CASE
WHEN DATEPART(weekday,GETDATE()) = '5'
THEN T0.[DueDate] >= GETDATE() AND <= DATEADD(day, 15 - DATEPART(weekday, GetDate()), GetDate())
WHEN DATEPART(weekday, GETDATE()) != '5'
THEN T0.[DueDate] >= GETDATE() AND <= DATEADD(DAY ,8- DATEPART(weekday, GETDATE()), GETDATE())
END
はい、可能ですが、一般的には悪い考えです。代わりにAND/ORを使用してください。 – jarlh
要件を正しく表現していることは間違いありませんか?金曜日には9日先を見なければならないが、土曜日には1つしか見えないことに注意してください。代わりに、土曜日に8日先を見なければならない場合は、次の金曜日にさらに2日を追加するだけで、あなたのロジックを単純化することができます。 – hvd
うん、hvd。それは間違っているように見えますが、それは私に説明された方法です。とにかく週末にはチェックされないので大丈夫だと思う。しかし、私はあなたのポイントを見て、それはおそらく私はそれについて考えて今はるかに簡単だろう。 – coblenski