求一个SQL语句写法

shangezi 2012-02-13 10:35:00
一个表有以下字段
用户ID,用户名称,部门ID,部门名称,考勤类型,打卡日期,怎么统计每个月每个人的考勤,考勤类型包括
0 正常,1 迟到,2 早退,3 缺勤
...全文
76 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2012-02-13
  • 打赏
  • 举报
回复

select 用户ID,
sum(case when 考勤类型=0 then 1 else 0 end) '正常',
sum(case when 考勤类型=1 then 1 else 0 end) '迟到',
sum(case when 考勤类型=2 then 1 else 0 end) '早退',
sum(case when 考勤类型=3 then 1 else 0 end) '缺勤'
from tab
group by 用户ID
AcHerat 元老 2012-02-13
  • 打赏
  • 举报
回复
考勤好麻烦。。。一堆的判断。
孤独潇湘 2012-02-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ap0405140 的回复:]
SQL code
select 用户ID,
sum(case when 考勤类型=0 then 1 else 0 end) '正常',
sum(case when 考勤类型=1 then 1 else 0 end) '迟到',
sum(case when 考勤类型=2 then 1 else 0 end) '早退',
sum(case when 考勤类型=3 then 1 els……
[/Quote]
楼上正解,我再补充下

SELECT username,LEFT(rq,7),
SUM(CASE WHEN type=0 THEN 1 ELSE 0 END) AS '正常' ,
SUM(CASE WHEN type=1 THEN 1 ELSE 0 END) AS '迟到' ,
SUM(CASE WHEN type=2 THEN 1 ELSE 0 END) AS '早退' ,
SUM(CASE WHEN type=3 THEN 1 ELSE 0 END) AS '缺勤'
FROM dbo.userkaoqing
GROUP BY username,LEFT(rq,7)


34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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