Access SQL:根据条件选择要从哪个表中选择

时间:2015-04-13 09:30:59

标签: sql ms-access subquery

考虑以下情况:

我有一大堆查询,可以从其他查询中进行选择,这些查询可以从出勤表中添加当前,迟到和不存在,计算百分比等任务。现在客户希望能够在查询中添加许多不同的条件:仅查看一周中某些日期的出勤情况,仅查看某个日期范围内的出勤情况等。

执行每个条件所需的所有计算都非常耗时,因此我希望仅在客户端请求完成计算时执行计算。但我不想为每种可以使用的条件重新创建我的整套查询/报告。所以我想做这样的事情:

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中是否有某种方法可以执行此操作?

1 个答案:

答案 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不评估病情。

如果要运行两个不同的查询,具体取决于用户选择的内容,请在应用程序中构建两个不同的查询,然后选择合适的查询。