【发布时间】:2016-08-01 07:41:24
【问题描述】:
我有 view_dtr 的列 Undertime、LateAM 和 LatePM 如果是 LateAM 或 LatePM IS NOT NULL,我需要得到 TotalUndertime。
| 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 |
EmpID = 305001 的 TotalUndertime 只能是 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 列的数据?
标签: mysql null sum case calculated-columns