我有view_dtr
與列Undertime
,LateAM
和LatePM
我需要得到TotalUndertime
如果任LateAM
或LatePM
IS NOT 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