条件查询表达式

时间:2019-04-16 12:38:23

标签: sql ms-access access-vba

我在Access Query中具有以下SQL。但是我需要在表达式“ Lasted”中添加一个条件。

SELECT ErrorLog.Reported_Date, ErrorLog.Details, ErrorLog.Started_At, ErrorLog.Ended_At,      ErrorLog.Project_Name, ([ended_at]-[started_at]) AS Lasted, ErrorLog.Not_Count_For_Pro_Time
FROM ErrorLog
GROUP BY ErrorLog.Reported_Date, ErrorLog.Details, ErrorLog.Started_At, ErrorLog.Ended_At,     ErrorLog.Project_Name, ([ended_at]-[started_at]), ErrorLog.Not_Count_For_Pro_Time;

此查询用作报告的记录源。就目前而言,该表达式包含值“([[ended_at]-[started_at]])”。但是,当“ Not_Count_For_Pro_Time”被选中/为真时,我需要找到一种方法在“持续时间”中显示0。

我已经在下面尝试过此代码,但是它仅显示“ Not_Count_for_Pro_Time”为false的记录。我希望报告显示所有记录,而不管“ Not_Count_For_Pro_Time”是对还是假,但是表达式“ Lasted”应该如前所述进行调整。

SELECT ErrorLog.Reported_Date, ErrorLog.Details, ErrorLog.Started_At, ErrorLog.Ended_At,     ErrorLog.Project_Name, ([ended_at]-[started_at]) AS Lasted, ErrorLog.Not_Count_For_Pro_Time
    FROM ErrorLog
    GROUP BY ErrorLog.Reported_Date, ErrorLog.Details, ErrorLog.Started_At, ErrorLog.Ended_At,     ErrorLog.Project_Name, ([ended_at]-[started_at]), ErrorLog.Not_Count_For_Pro_Time
    HAVING (((ErrorLog.Not_Count_For_Pro_Time)=False));

1 个答案:

答案 0 :(得分:3)

使用条件逻辑:

IIF(ErrorLog.Not_Count_For_Pro_Time = 'true', 0, [ended_at]-[started_at]) AS Lasted,