考虑以下情况:
我有一大堆查询,可以从其他查询中进行选择,这些查询可以从出勤表中添加当前,迟到和不存在,计算百分比等任务。现在客户希望能够在查询中添加许多不同的条件:仅查看一周中某些日期的出勤情况,仅查看某个日期范围内的出勤情况等。
执行每个条件所需的所有计算都非常耗时,因此我希望仅在客户端请求完成计算时执行计算。但我不想为每种可以使用的条件重新创建我的整套查询/报告。所以我想做这样的事情:
SELECT * FROM
IIf([a checkbox on a form that indicates whether the user wants the condition],
SELECT * FROM Attendance,
SELECT * FROM Attendance WHERE condition)
因为如果用户不想要计算,我不想进行计算,这不是一个解决方案:
SELECT * FROM Attendance
WHERE condition
OR NOT [a checkbox on a form that indicates whether the user wants the condition]
在Access SQL中是否有某种方法可以执行此操作?
答案 0 :(得分:1)
表达逻辑的正确方法是:
SELECT *
FROM Attendance
WHERE ([a checkbox on a form that indicates whether the user wants the condition] and condition) or
(not [a checkbox on a form that indicates whether the user wants the condition] )
此配方可能允许MS Access不评估病情。
如果要运行两个不同的查询,具体取决于用户选择的内容,请在应用程序中构建两个不同的查询,然后选择合适的查询。