我在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));
答案 0 :(得分:3)
使用条件逻辑:
IIF(ErrorLog.Not_Count_For_Pro_Time = 'true', 0, [ended_at]-[started_at]) AS Lasted,