日期:2014-05-18 浏览次数:20529 次
时间 名字 是否本地 今天上午 张三 true 今天下午 张三 false 昨天上午 张三 true 昨天下午 张三 true 前天上午 张三 false 前天中午 张三 true 前天下午 张三 false 今天上午 李四 true 今天中午 李四 false 今天下午 李四 false 昨天上午 李四 false 昨天中午 李四 true 昨天下午 李四 true 前天上午 李四 false 前天中午 李四 true 前天下午 李四 false
时间 名字 本地数量 非本地数量 咨询总数 今天 张三 1 1 2 昨天 张三 2 0 2 前天 张三 1 2 3 今天 李四 1 2 3 昨天 李四 2 1 3 前天 李四 1 2 3
select convert(varchar(10),时间,120),名字, 本地数量=sum(case when 是否本地='true' then 1 else 0 end), 非本地数量=sum(case when 是否本地='false' then 1 else 0 end), 咨询总数=count(*) from tb group by convert(varchar(10),时间,120),名字 order by 名字,convert(varchar(10),时间,120) desc
------解决方案--------------------
select convert(varchar(10),时间,120),名字, sum(case when 是否本地='true' then 1 else 0 end) as 本地数量, sum(case when 是否本地='false' then 1 else 0 end) as 非本地数量, count(1) as 咨询总数 from tb group by convert(varchar(10),时间,120),名字 order by 名字,convert(varchar(10),时间,120) desc
------解决方案--------------------
SELECT CONVERT(VARCHAR(10),时间列,120) AS 日期,名字, SUM(是否本地*1) AS 本地数量, SUM(1-是否本地*1) AS 非本地数量, COUNT(1) AS 咨询总数 FROM table1 WHERE DATEDIFF(d,时间列,GETDATE())<=2 GROUP BY CONVERT(VARCHAR(10),时间列,120) ORDER BY 名字,日期
------解决方案--------------------
create table tb(时间 datetime,名字 nvarchar(10),是否本地 bit) insert into tb select '2011-12-07 01:30','张三',1 insert into tb select '2011-12-07 21:30','张三',0 insert into tb select '2011-12-06 01:30','张三',1 insert into tb select '2011-12-06 21:30','张三',1 insert into tb select '2011-12-05 21:30','张三',0 insert into tb select '2011-12-05 21:30','张三',1 insert into tb select '2011-12-05 21:30','张三',0 insert into tb select '2011-12-07 21:30','李四',1 insert into tb select '2011-12-07 21:30','李四',0 insert into tb select '2011-12-06 21:30','李四',0 insert into tb select '2011-12-06 21