2012-12-10 90 views
1

我遇到了將我的查詢結果限制爲相關表值的問題。根據表達式限制查詢結果

SELECT Roster.UserID, Roster.[WM DOH], Round((Date()-[WM DOH])/365,2) AS YearsOfService,  tblAccrual.WeeksAccrual 
FROM Roster, tblAccrual 
WHERE (([tblAccrual]![Years]<[YearsOfService])) 
GROUP BY Roster.UserID, Roster.[WM DOH], Round((Date()-[WM DOH])/365,2), tblAccrual.WeeksAccrual; 

我的查詢應該返回基於服務年數的應計週數。當我運行查詢時,它會在輸入框中詢問YearsOfService。我正在尋找的是基於服務年限爲用戶提供適當的應計價值回報。當我刪除「Where」部分時,它會返回各年服務價值的所有組合。我只想要一個對應他們服務年限的人。在Excel中,我有一個像...

Today - Date of Hire/365 = Years of service 
if(years of service <2,0, if(years of service <7,2, if Years of service <15,3, 4))) 

我做錯了什麼?

回答

2

您不能引用別名YearsOfService在Where語句,使用類似:

WHERE (([tblAccrual]![Years]<Round((Date()-[WM DOH])/365,2))) 

從括號的數量,看來你正在使用的查詢設計窗口建設,它可以幫助把標準下別名列以查看MS Access建議。