0

休暇の概要情報を取得するクエリがあります。結果を現在の記念日より後に制限したいと思います。記念日の式のみでクエリを実行すると、記念日の式は正常に機能します。Where 句を挿入すると、Anniversary のプロンプトが表示されます。Where 句がない場合は、式が実行され、アニバーサリーの日付が表示されます。

SELECT SchedulingLog.UserID, SchedulingLog.Category, Sum(IIf([CatDetail] Like 'Ann*',[Value],0)) AS Gain, Sum(IIf([CatDetail] Like '*Used*',[Value],0))+Sum(IIf([CatDetail] Like 'Adj*',[Value],0)) AS Used, [Gain]+[Used] AS [Left], Month([WM DOH]) & "/" & Day([WM DOH]) & "/" & Year(Date()) AS Anniversary
FROM SchedulingLog INNER JOIN Roster ON SchedulingLog.UserID = Roster.UserID
WHERE (((SchedulingLog.EventDate)>=[Anniversary]))
GROUP BY SchedulingLog.UserID, SchedulingLog.Category, Month([WM DOH]) & "/" & Day([WM DOH]) & "/" & Year(Date())
HAVING (((SchedulingLog.Category) Like "Vac*"));

私が探しているのは、イベント日の式記念日の後に合計値を制限する方法です。

私のSQLの経験不足とガイダンスに対するRemousの忍耐に基づいています。光が見え始めています。だから私が取るとき

DateAdd("yyyy",1,[WM DOH])
it returns the individuals date of Hire and the year advances by 1.
ex. employee DOH 12-25-2003
The expression returns 12-25-2004

私はdateAddをこのようなものに調整しています

DateAdd("yyyy",Year(Date())-1,[WM DOH])
This returns something completely wrong. but illustrates what I am trying to accomplish
desired result ex. 12-25-2011

考え?

4

1 に答える 1

2

同じ話。Anniversary は where 句で参照できるフィールドではなく、エイリアスです。

WHERE SchedulingLog.EventDate>= 
    DateSerial(Year(Date())-1,Month([WM DOH]) ,Day([WM DOH]))
于 2012-12-20T15:21:39.303 に答える