22,209
社区成员
发帖
与我相关
我的任务
分享
SELECT CheckDate AS 统计日期,
COUNT(DISTINCT(CASE WHEN DepartID='a001' THEN EmployeeID ELSE NULL END)) AS SSLS,
COUNT(DISTINCT(CASE WHEN DepartID='a002' THEN EmployeeID ELSE NULL END)) AS SHVS,
COUNT(DISTINCT(CASE WHEN DepartID='a003' THEN EmployeeID ELSE NULL END)) AS SLC
FROM TB
WHERE DATENAME(Hh,CheckDateTime)>17
GROUP BY CheckDate
SELECT
CONVERT(CARCHAR(10),CHECKDATE,120) AS 统计日期,
SUM(CASE WHEN DepartID='0001' THEN 1 ELSE 0 END) AS SSLS,
SUM(CASE WHEN DepartID='0002' THEN 1 ELSE 0 END) AS SHVS,
SUM(CASE WHEN DepartID='0003' THEN 1 ELSE 0 END) AS SLC
FROM
(SELECT * FROM TB T WHERE CheckTime>'17:00' and NOT EXISTS(SELECT 1 FROM TB WHERE EmployeeID=T.EmployeeID AND CheckDate=T.CheckDate AND CheckTime>T.CheckTime)) AS T
GROUP BY
CONVERT(CARCHAR(10),CHECKDATE,120)
掉了大于17:00这个条件SELECT
CONVERT(CARCHAR(10),CHECKDATE,120) AS 统计日期,
SUM(CASE WHEN DepartID='0001' THEN 1 ELSE 0 END) AS SSLS,
SUM(CASE WHEN DepartID='0002' THEN 1 ELSE 0 END) AS SHVS,
SUM(CASE WHEN DepartID='0003' THEN 1 ELSE 0 END) AS SLC
FROM
(SELECT * FROM TB T WHERE NOT EXISTS(SELECT 1 FROM TB WHERE EmployeeID=T.EmployeeID AND CheckDate=T.CheckDate AND CheckTime>T.CheckTime)) AS T
GROUP BY
CONVERT(CARCHAR(10),CHECKDATE,120)