view_dtr
에 Undertime
, LateAM
및 LatePM
이 필요합니다. TotalUndertime
이면 LateAM
또는 LatePM
IS NOT NULL
입니다. null이 아닌 경우 다른 열의 데이터를 기반으로 월별 합계를 구합니다. 따라서 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