接另外的一个帖子,那个帖子的问题已经基本解决,现在对剩下的问题再开个帖子请教with cet as( select '中餐' as Type,'2000-01-01 09:29:00' as BgnTime, '2000-01-01 12:29:00' as EndTime union all select '晚餐' as Type,'2000-01-01 15:29:00' as BgnTime, '2000-01-01 18:29:00' as EndTime union all select '夜宵' as Type,'2000-01-01 21:29:00' as BgnTime, '2000-01-01 23:59:00' as EndTime ) ,CET1 as(select CONVERT(VARCHAR(10),dateadd(MI,-31,[CHECKTIME]),120) 日期,b.Type 餐别,COUNT(distinct UserID) 人数 from CHECKINOUT a, cet b where CAST(STUFF(CONVERT(VARCHAR(19),dateadd(MI,-31,[CHECKTIME]),120),1,10,'2000-01-01') AS DATETIME) between b.BgnTime and b.EndTime group by CONVERT(VARCHAR(10),dateadd(MI,-31,[CHECKTIME]),120),b.Type ) select * from CET1 a pivot (max(人数) for 餐别 in([中餐],[晚餐],[夜宵]))p 这个功能是实现统计三餐的吃饭人数的,现在的问题里面日期我要怎么设置,因为不管我把日期改成多少 出来的结果都是一样的,而且运行语句到出结果,感觉有点慢。 如果我要查询3月1日到5日的记录并按时间排序,要怎么写?谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货