我有一个表,它准确地指定了每个员工在特定办公室的日期和时间。我想知道每个员工是什么日期和时间来上班的,什么日期和时间下班的。我还想知道他在每个时间流程中工作了多少次。
EmployeeTable
看起来像这样:
<表类>
id
EmployeeID
DateP
TimeP
tbody><<tr>1 11111 1397/01/02 01:30 211111 1398/05/09 05:30 3 11111 1398/06/07 05:10 422222 1398/08/09 06:12 522222 1399/02/01 07:15 611111 1399/07/02 08:51 711111 1399/08/06 12:20 833333 1399/09/04 20:01 9 33333 1399/12/08 球队的 1033333 1400/01/01 23:11 1133333 1400/02/05 十四10 12 22222 1400/04/05 16:25 表类>
如果我理解正确的话,您只是想知道每个员工岛中的记录数量。在这种情况下,只需在最后的查询中选择COUNT(*)
:
SELECT
EmployeeID,
MAX(CASE WHEN rn_first = 1 THEN DateP END) AS MinDateP,
MAX(CASE WHEN rn_first = 1 THEN TimeP END) AS TimeMinDateP,
MAX(CASE WHEN rn_last = 1 THEN DateP END) AS MaxDateP,
MAX(CASE WHEN rn_last = 1 THEN TimeP END) AS TimeMaxDateP,
COUNT(*) AS count
FROM cte2
GROUP BY
EmployeeID,
rn1 - rn2
ORDER BY
MIN(DateP),
MIN(TimeP);