条件查询表达式

问题描述 投票:0回答:1

我在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”/ True时,我需要找到一种方法来显示“持续”0。

我在下面尝试过这段代码,但它只显示“Not_Count_for_Pro_Time”为假的记录。我希望报告显示所有记录,无论“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));
sql ms-access access-vba
1个回答
3
投票

使用条件逻辑:

IIF(ErrorLog.Not_Count_For_Pro_Time = 'true', 0, [ended_at]-[started_at]) AS Lasted, 
© www.soinside.com 2019 - 2024. All rights reserved.