【问题标题】:Access SQL: Choosing which table to SELECT from based on a conditionAccess SQL:根据条件选择要从哪个表中选择
【发布时间】:2015-04-13 09:30:58
【问题描述】:

考虑以下情况:

我有大量从其他查询中选择的查询,这些查询从其他查询中选择,其任务是在出勤表中添加出席、迟到和缺席,计算百分比等。现在客户希望能够为查询添加许多不同的条件:仅查看一周中特定日期的出勤情况、仅查看特定日期范围内的出勤情况等。

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

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 中有什么方法可以做到这一点吗?

【问题讨论】:

    标签: sql ms-access subquery


    【解决方案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 不评估条件。

    如果您希望根据用户的选择运行两个不同的查询,则在应用程序中构建两个不同的查询并选择合适的一个。

    【讨论】:

    • 这确实解决了我的问题,所以我将其标记为答案。但是,虽然您解决了我的问题,但我想不出实际情况,但我很想知道我原来的问题的答案:如何使用 SQL“选择合适的”?
    • @clum 。 . .您可以在应用程序中创建两个查询,或者生成适当的where 子句并让 SQL 引擎为您优化。
    猜你喜欢
    • 2022-12-20
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 2022-12-05
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多