根据表达式限制查询结果

时间:2012-12-10 13:35:04

标签: sql ms-access

我遇到了将查询结果限制为相关表值的问题。

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)))

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您不能在Where语句中引用别名YearsOfService,使用类似:

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

从括号的数量来看,您似乎正在使用查询设计窗口构建,它可以帮助在别名列下放置一个标准,以查看MS Access建议的内容。

相关问题