日期:2014-05-18 浏览次数:20410 次
select 注册时间,count(1) from t where 注册时间 btween @s and @e group by 注册时间
------解决方案--------------------
between
------解决方案--------------------
给点数据 及你想要的结果
------解决方案--------------------
有一张表,有地区、用户名、注册时间。给定一个起始时间、一个终止时间,求给定起止时间内的期间记录数,以及到终止时间的记录数。用一条sql实现。比如说给定时间2008-1-10和2008-3-9,首个注册用户的注册时间为2007-8-19.既求2008-1-10和2008-3-9间的记录数以及2007-8-19和2008-3-9的记录数。谢谢!
---
还真没看懂?
不如直接求2007-08-19到2008-03-09
------解决方案--------------------
select count(distinct(用户名)) as '记录数' from tb where dt between '开始时间' and '结束时间' group by 用户名
------解决方案--------------------
declare @dt1 as datetime declare @dt2 as datetime set @dt1 = '2008-1-10' set @dt2 = '2008-3-9' declare @first as datetime select @first top 1 注册时间 from tb order by 注册时间 select count(*) from tb where 注册时间 between @dt1 and @dt2 select count(*) from tb where 注册时间 between @first and @dt2
------解决方案--------------------
现在流行让猜.
比如刚才那个题为"如何找出两个不级格的"
------解决方案--------------------
呵呵
------解决方案--------------------
select sum(case when 注册时间>=@开始时间 then 1 else 0 end), sum(1) from 表 where 注册时间<=@终止时间
------解决方案--------------------
呵呵
------解决方案--------------------
不允许笑,严肃点,这么晚不睡觉
------解决方案--------------------
MD,MM去约会了,我只好待这里了.
------解决方案--------------------
MM不在,我找鬼去约会啊?
------解决方案--------------------
找小陈呀,现在出名得很
------解决方案--------------------
我不好这口,我让给你.
------解决方案--------------------
我更不好这个呀,SS吧
------解决方案--------------------
select '期间记录数:'+rtrim(count(*)) from t where 注册时间 between 开始日期 and 结束日期 union select '总记录数:'+rtrim(count(*)) from t
------解决方案--------------------
select 地区, [期间人数]=sum(case when 注册时间>=@起始日期 then 1 else 0 end), [总人数]=sum(1) from 表 where 注册时间<=@结束日期 group by 地区
------解决方案--------------------
呵呵,把问题描述清楚了很重要...
否则,别人的答案往往不是你需要的
------解决方案--------------------
-->测试数据: party create table party (用户名 varchar(2),地区 varchar(4),注册时间 datetime) insert into party select 'aa','山东','2007-03-05' union all select 'bb','广东','2008-02-11' union all select 'cc','山东','2008-03-05' /* 用户从界面上选择时间 起始日期 结束日期 如用户选择 起始日期为2008-01-01 结束日期为2008-03-05 查询要出的结果: 地区 期间人数 总人数(注:这个人数是根据结束日期得到) 山东 1 2 广东 1 1 */ declare @Start datetime, @End datetime select @Start = '2008-01-01', @End = '2008-03-05' select 地区, 期间人数=sum(case when 注册时间>=@Start and 注册时间<=@End then 1 else 0 end), 总人数=sum(case when 注册时间<=@End then 1 else 0 end) from party group by 地区 /* 地区 期间人数 总人数 ---- ----------- ----------- 广东 1 1 山东