0
我在嘗試IIF語句時無法獲得Where語句的工作。我已經嘗試了幾個變種的SQL無濟於事。我想要做的是計數假期直到某個日期收益。當我單獨使用我的Between語句時,它工作正常。當系統時鐘超過5-20-13後,當我嘗試重置計數器時,如果它剛剛通過的陣亡將士紀念日假期顯示1,則不返回結果。我無法弄清楚正確的語法代碼段上是WHERE集成了IIF的sql
WHERE (((SchedulingLog.EventDate)=IIf(Date()>DateSerial(Year(Date()),5,20),((SchedulingLog.EventDate) Between DateSerial(Year(Date()),5,20) And DateSerial(Year(Date())+1,5,20)),((SchedulingLog.EventDate) Between DateSerial(Year(Date())-1,5,20) And DateSerial(Year(Date()),5,20)))))
下面是我的整個sql。
SELECT Roster.UserID, SchedulingLog.Category,
Sum(IIf([CatDetail] Like '*Gain*',[Value],0)) AS Gain, DateSerial(Year(Date()),5,20) AS ResetDate, Date() AS [Date]
FROM SchedulingLog INNER JOIN Roster ON SchedulingLog.UserID = Roster.UserID
WHERE (((SchedulingLog.EventDate)=IIf(Date()>DateSerial(Year(Date()),5,20),((SchedulingLog.EventDate) Between DateSerial(Year(Date()),5,20) And DateSerial(Year(Date())+1,5,20)),((SchedulingLog.EventDate) Between DateSerial(Year(Date())-1,5,20) And DateSerial(Year(Date()),5,20)))))
GROUP BY Roster.UserID, SchedulingLog.Category, DateSerial(Year(Date()),5,20), Date()
HAVING (((SchedulingLog.Category) Like "DH*" Or (SchedulingLog.Category) Like "Comp*"));
任何援助將不勝感激。
完美地工作!所以如果我正在閱讀這個權利,關鍵是使用Where子句時的AND If語句? –
BETWEEN需要一個VALUE,其次是AND,然後是另一個VALUE,IIF語句只能返回一個值,它們不能返回AND運算符。 –