Условное выражение запроса - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть SQL ниже в Access Query.Но мне нужно добавить условие к выражению "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;

Этот запрос используется в качестве источника записи для отчета.В его нынешнем виде выражение содержит значение «([законченный_отчет - начатый_ответ)»).Но мне нужно найти способ показать 0 для "lasted", когда установлен флажок "Not_Count_For_Pro_Time" / True.

Я попробовал этот код ниже, но он показывает только записи, где "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 Ответ

3 голосов
/ 16 апреля 2019

Использовать условную логику:

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