Как я могу выразить условие SUM в SQL с помощью CASE? - PullRequest
0 голосов
/ 25 июня 2019

У меня есть запрос с кодом SQL, который вычисляет рабочие дни для каждого из этих действий: Interstaff, Mission, `` Congés` с использованием определенной функции VBA.

Если в один и тот же день выполняются два действия, для каждого из них считается 1 день, я хочу, чтобы функция Sum игнорировала этот день и переходила к следующему.

Я хотел бы изменить свой код SQL, чтобы добавить это условие:

"При расчете mission, если в том же периоде есть Congés, игнорируйте этот день (и отдавайте приоритет только подсчету его в congés)"

Я прочитал, что есть условие CASE, но я не смог перевести это в свой реальный код ...

SELECT 
    Z.Planning_Consultants.ID_Consultant,
    Sum(IIf([Activité]="(2) Interstaff",WorkingDaysInDateRange([maxBegin],[minEnd])*Planning_Consultants.Time_Allocated,0)) AS NonBillable,
    Sum(IIf([Activité]="(1) Mission",WorkingDaysInDateRange([maxBegin],[minEnd])*Planning_Consultants.Time_Allocated,0)) AS Billable,
    Sum(IIf([Activité]="(3) Congés/Arrêt",WorkingDaysInDateRange([maxBegin],[minEnd])*Planning_Consultants.Time_Allocated,0)) AS Absent, 

Например, мистер А. получил задание от 03/06/2019 до 07/06/2019. С выходным (congé) на 06/06/2019. Я ожидаю, что результатом будет Миссия 4 дня и конге 1 день, в моем случае у меня будет 5 дней миссии и конге 1 день,

Пожалуйста, примите во внимание, что я все еще начинающий на пути к обучению!

...