-1

ケース句に少し問題があります。問題は、DueBeyond で終わる最後の部分にあります。今日から 2 日後のように、明日以降に期限が到来するシステム内の注文を返すために、これが必要です。わかりにくすぎてすみません。

SUM(CASE WHEN CURRENT_TIMESTAMP > oi.RequiredByDate THEN 1 ELSE 0 END) as PastDue
,SUM(CASE WHEN DATEADD(dd, DATEDIFF(dd, 0, oi.RequiredByDate), 0) = dateadd(day,     datediff(day, '19000101',CURRENT_TIMESTAMP),'19000102') then 1 ELSE 0 END) as DueTomorrow
,SUM(CASE WHEN dbo.TruncateDate(CURRENT_TIMESTAMP) = dbo.TruncateDate(oi.RequiredByDate) THEN 1 Else 0 END) as DueToday
,SUM(CASE WHEN DateDiff(day, getdate(), RequiredByDate) BETWEEN 2 and 7 AND DateName(weekday, RequiredByDate) = 'Monday' Then 1 ELSE 0 END) as DueMonday
,SUM(CASE WHEN dbo.TruncateDate(CURRENT_TIMESTAMP) <= dbo.TruncateDate(oi.RequiredByDate) THEN 1 ELSE 0 END) as DueBeyond
4

1 に答える 1

0

現在の日付に 2 日を追加して、それが必要な日付よりも前か同じかどうかを確認する場合、それは 2 日以内である必要があります。

,SUM(CASE WHEN DATEADD(DAY, 2,dbo.TruncateDate(CURRENT_TIMESTAMP)) <= 
     dbo.TruncateDate(oi.RequiredByDate) THEN 1 ELSE 0 END) as DueBeyond 
于 2012-04-18T23:45:26.490 に答える