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

我做错了什么?

4

1 回答 1

2

您不能YearsOfService在 Where 语句中引用别名,请使用以下内容:

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

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

于 2012-12-10T13:37:41.330 回答