如有
tab
ID Date
1 2008-1-1
2 2008-1-1
3 2008-1-3
..
100 2008-8-9
---------------------
要求得出从一个时间到下一个时间为一个月的时间段记录最多的数据
如
2008-1-1 到 2008-1-31 有100条记录
2008-1-2 到 2008-2-1 有110条记录
那么就是取得208-1-2 - 2008-2-1日这个时间段
tab
ID Date
1 2008-1-1
2 2008-1-1
3 2008-1-3
..
100 2008-8-9
---------------------
要求得出从一个时间到下一个时间为一个月的时间段记录最多的数据
如
2008-1-1 到 2008-1-31 有100条记录
2008-1-2 到 2008-2-1 有110条记录
那么就是取得208-1-2 - 2008-2-1日这个时间段
解决方案 »
- -------SQL 2005 的问题哟....技术不达标,请大家帮忙!-----
- 多查询条件问题
- 我认为很难的问题呀??给个存储过程帮看看
- 触发器删除前n条记录,top的参数用法,求解释
- 这个语句该怎么写?
- SQLID标识列重新排列后顺序乱了
- 在以下情况下怎么样来使用insert into语句,大大的奖励各位高手
- SQL server2000安装时提示无法找到SQLUNIRL.dll?
- sql server7不支持like?请指教这个语句怎么改?(加20分)
- 如何在vc++利用odbc向sql sever 2000表中的image字段写入一个二进制数据(s_bj)
- 连接不上数据库的错误类型,请求
- 请一个字段更新的语句的写法
insert @tab select 1, '2008-1-1'
insert @tab select 2, '2008-1-1'
insert @tab select 3, '2008-1-3'
insert @tab select 4, '2008-2-1'
insert @tab select 5, '2008-2-3'
insert @tab select 3, '2008-2-5'
insert @tab select 3, '2008-3-3'
select count(*)amount,convert(varchar(7),date,120)[date] from @tab group by convert(varchar(7),date,120)
from
(
SQL codeselect top 1 year(Date) as 年,month(Date) as 月,count(*) as 数据量 from Tab group by year(Date),month(Date) order by count(*) desc
) a
rtrim(year(ReqDate))+'-'+rtrim(month(ReqDate)) MONTH,
count(*) COUNT
from
DBHTSystem..TMP_WRKSECONDARYINSP
group by
rtrim(year(ReqDate))+'-'+rtrim(month(ReqDate))
order by
rtrim(year(ReqDate))+'-'+rtrim(month(ReqDate))MONTH COUNT
------------------------- -----------
2008-4 175
2008-5 132
2008-7 2引自:完美行动
rtrim(year(ReqDate))+'-'+rtrim(month(ReqDate)) MONTH,
count(*) COUNT
from
DBHTSystem..TMP_WRKSECONDARYINSP
group by
rtrim(year(ReqDate))+'-'+rtrim(month(ReqDate))
order by
COUNT descMONTH COUNT
------------------------- -----------
2008-4 175
select
rtrim(year(ReqDate))+'-'+rtrim(month(ReqDate)) MONTH,
count(*) COUNT
from
DBHTSystem..TMP_WRKSECONDARYINSP
group by
rtrim(year(ReqDate))+'-'+rtrim(month(ReqDate))
order by
rtrim(year(ReqDate))+'-'+rtrim(month(ReqDate))
-----------------------------------------------------------
这样只是计算出月份的数据我现在要查询的是:
查询出某个个月时间段(也就相当于哪个30天)记录最多的时间段
他不是以yyyy-MM-1 -> yyyy-(MM+1)-1.AddDay(-1)的形式
而是某一天到他的下个月的这一天 谢谢
select @sum=sum(1) where id>@i and id<@i+30;
然后再加个变量@tmp存储每次存储的@sum值,进行每次的比较