У меня есть view_dtr
с колонками Undertime
, LateAM
и LatePM
Мне нужно получить TotalUndertime
, если LateAM
или LatePM
IS NOT NULL
.получение суммы в месяц на основании данных другого столбца, если она не равна нулю, если она равна нулю, то она не будет добавлена к общей сумме
| EmpID | DatePresent | Undertime | LateAM | LatePM |
| 305001 | 2016-04-01 | 00:10:00 | 01:00:00 | 00:12:00 |
| 305001 | 2016-04-02 | 00:15:00 | | |
| 305001 | 2016-04-03 | 00:20:00 | 00:05:00 | |
| 305001 | 2016-04-04 | 00:05:00 | | 00:01:00 |
| 305002 | 2016-04-01 | 00:01:00 | | 00:10:00 |
| 305002 | 2016-04-02 | 00:10:00 | | |
| 305002 | 2016-04-03 | 00:10:00 | 00:02:00 | 00:03:00 |
TotalUndertime
для EmpID = 305001
должен быть только 00:35:00
и EmpID = 305002
должны быть 00:11:00
. Я продолжаю получать всю сумму, используя инструкцию CASE
.
CASE WHEN LateAM IS NOT NULL AND Undertime IS NOT NULL
THEN SEC_TO_TIME(SUM(TIME_TO_SEC(Undertime)))
WHEN LatePM IS NOT NULL AND Undertime IS NOT NULL
THEN SEC_TO_TIME(SUM(TIME_TO_SEC(Undertime)))
ELSE NULL
END AS TotalUndertime
FROM view_dtr
GROUP BY EmpID, MONTH(DatePresent)
Любая помощь и предложение приветствуются. извините за новичка.
Можете ли вы публиковать данные, включая столбцы EmpID и DatePresent? – olegsv