您的位置:首页 > 数据库

也许有用的SQL:对单表数据进行count统计生成简单的交叉表

2006-07-26 17:47 561 查看
一个表5个字段anghter代表是考勤信息,kaoqinid代表是考勤号,yeid区别上午早退与上午迟到,
下午早退与下午迟到,
0表示为上午早退,1表示为上午迟到,2表示为下午早退,3表示为下午早退
我想得到这样的查询效果
kaoqinid 上午早退 上午迟到 下午早退  下午早退

111111 8(次数) 21(次数) 11(次数) 12(次数)
222222 10(次数) 11(次数) 11(次数) 11(次数)

表中若干条记录数据如下:

angther    yeid     kaqinid
上午早退了 0 111111
下午迟到了 2 222222
下午迟到了 2 222222
下午迟到了 2 222222
上午迟到了 1 111111
上午早退了 0   111111
上午早退了  0   111111
下午迟到了  2   222222
下午早退了 3   222222
下午早退了 3 111111
下午迟到了 3 222222
下午早退了 3 222222
下午早退了 3 222222
下午迟到了 2 111111
下午早退了 3 111111
下午早退了 3 111111
下午迟到了 2 222222
下午早退了 3 222222

select kaqinid,
sum(case when yeid='0' then 1 else 0 end),
sum(case when yeid='1' then 1 else 0 end),
sum(case when yeid='2' then 1 else 0 end),
sum(case when yeid='3' then 1 else 0 end)
from t_anghter
group by 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐