当前位置: 代码迷 >> Sql Server >> sql 联合查询分组
  详细解决方案

sql 联合查询分组

热度:42   发布时间:2016-04-24 20:56:03.0
求助sql 联合查询分组
SELECT userid,CONVERT(VARCHAR(10),checktime,120) AS 'date',MIN(checktime) AS 't1' FROM checkinout where (checktime>'2013-6-1 1:00:00' and checktime<'2013-6-30 23:50:00') GROUP BY CONVERT(VARCHAR(10),checktime,120),userid order by userid,'date'

这个查询用户每天最早的checktime,

SELECT userid,,CONVERT(VARCHAR(10),checktime,120) AS 'date',min(checktime) as t2 from checkinout where datename(hh,checktime)>12 and (checktime>'2013-6-1 1:00:00' and checktime<'2013-6-30 23:50:00') group by  CONVERT(VARCHAR(10),checktime,120),userid order by userid

这个查询用户每天下午最早的checktime, 数据都在一个表,怎么把2个结果连接起来

------解决方案--------------------

SELECT userid,CONVERT(VARCHAR(10),checktime,120) AS 'date',MIN(checktime) AS 't1' FROM checkinout where (checktime>'2013-6-1 1:00:00' and checktime<'2013-6-30 23:50:00') GROUP BY CONVERT(VARCHAR(10),checktime,120),userid order by userid,'date'

union all

SELECT userid,,CONVERT(VARCHAR(10),checktime,120) AS 'date',min(checktime) as t2 from checkinout where datename(hh,checktime)>12 and (checktime>'2013-6-1 1:00:00' and checktime<'2013-6-30 23:50:00') group by  CONVERT(VARCHAR(10),checktime,120),userid order by userid

------解决方案--------------------
SELECT userid,
       CONVERT(VARCHAR(10), checktime, 120) AS 'date',
       Min(checktime)                       AS 't1',
       NULL                                 't2'
FROM   checkinout
WHERE  ( checktime > '2013-6-1 1:00:00'
  相关解决方案