日期:2014-05-18  浏览次数:20626 次

这个查询语句怎么写
背景:公司餐厅就餐纪录每天可以从考勤机上面直接抓去下来,怎么查询每天所有就餐厅人数中刷卡纪录大于等于4的纪录,其中每个人的工号,卡号是唯一的?


------解决方案--------------------
背景:公司餐厅就餐纪录每天可以从考勤机上面直接抓去下来,怎么查询每天所有就餐厅人数中刷卡纪录大于等于4的纪录,其中每个人的工号,卡号是唯一的?

select 工号(或卡号), convert(varchar(10),时间字段,120) 日期,count(*) 次数
from tb
group by 工号(或卡号), convert(varchar(10),时间字段,120)
having count(*) > = 4
------解决方案--------------------
select 工号 from table1 group by 工号 having count(1) > = 4
------解决方案--------------------
楼上少了对天的分组.
------解决方案--------------------
select 员工号,卡号, convert(varchar(10),时间字段,112) as 刷卡日期,count(*) as 刷卡次数
from tb
group by 员工号,卡号convert(varchar(10),时间字段,112)
having count(*) > = 4

------解决方案--------------------
select 员工号,卡号, convert(varchar(10),时间字段,112) as 刷卡日期,count(*) as 刷卡次数
from tb
group by 员工号,卡号,convert(varchar(10),时间字段,112)
having count(*) > = 4
------解决方案--------------------
好多答案啊,顶
------解决方案--------------------
看懂了,我又进步了.
------解决方案--------------------
convert(varchar(10),20070801,120) 换成 '日期 '
------解决方案--------------------
group by card_no,日期