求一个查询语句

csjtxy 2016-05-31 06:10:01
比如我有如下业务需求:
每个员工每天要打两次卡,上班打卡,则会有记录“上班打卡正常”,下班打卡则会有记录“下班打卡正常”。
下表中,是某天的员工打卡记录表:

请问:

我要如何查询出满勤员工、未打上班卡员工、未打下班卡员工?
感激不尽!
...全文
207 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingtiy 2016-06-01
  • 打赏
  • 举报
回复
应该还有一个上班的日期表. 用这个表去左关联打卡记录表,判断有没有打卡,及打卡次数
wtujedp 2016-06-01
  • 打赏
  • 举报
回复
有没有每个月应打卡的日期列,如何标识,打卡是上班的还是下班的?你这样的一个表,太简单了,没有办法实现
spiritofdragon 2016-05-31
  • 打赏
  • 举报
回复
WITH t(员工id,打卡记录) AS (
	SELECT '1001','上班打卡正常' UNION ALL
	SELECT '1002','下班打卡正常' UNION ALL
	SELECT '1003','上班打卡正常' UNION ALL
	SELECT '1003','下班打卡正常' 
)
SELECT  员工id,CASE SUM(CASE t.打卡记录 
						WHEN '上班打卡正常' THEN 1 
						WHEN '下班打卡正常' THEN 2 
						ELSE 0 END
						) 
					WHEN 1 THEN '未打下班卡员工' 
					WHEN 2 THEN '未打上班卡员工' 
					WHEN 3 THEN '出满勤员工' END
FROM t
GROUP BY 员工id

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧