------解决方案-------------------- /* 2012-02-01 20:15:00 000 53 2012-02-01 21:15:00 000 64 2012-03-01 22:15:00 000 34 2012-03-01 23:15:00 000 65 ..... ..... 2012-04-22 18:15:00 000 34 2012-04-22 19:15:00 000 123 2012-04-22 20:15:00 000 43 2012-05-21 21:15:00 000 64 2012-05-21 22:15:00 000 21 2012-05-21 23:15:00 000 31 */ go if object_id('tbl')is not null drop table tbl go create table tbl( [date] datetime, value int ) go insert tbl select '2012-02-01 20:15:00',53 union all select '2012-02-01 21:15:00',64 union all select '2012-03-01 22:15:00',34 union all select '2012-03-01 23:15:00',65 union all select '2012-04-22 18:15:00',34 union all select '2012-04-22 19:15:00',123 union all select '2012-04-22 20:15:00',43 union all select '2012-05-21 21:15:00',64 union all select '2012-05-21 22:15:00',21 union all select '2012-05-21 23:15:00',31
;with T as ( select *, row_number()over(partition by datepart(mm,[date]),datepart(dd,[date]) order by value desc) as num from tbl )
select [date],value from T where num=1
/* date value 2012-02-01 21:15:00.000 64 2012-03-01 23:15:00.000 65 2012-04-22 19:15:00.000 123 2012-05-21 21:15:00.000 64 */
我修改了你给的数据
------解决方案--------------------
------解决方案--------------------
SQL code
declare @T table ([datetime] datetime,num int)
insert into @T
select '2012-02-01 20:15:00.000',53 union all
select '2012-02-01 21:15:00.000',64 union all
select '2012-02-01 22:15:00.000',34 union all
select '2012-02-01 23:15:00.000',65 union all
select '2012-02-21 18:15:00.000',34 union all
select '2012-02-21 19:15:00.000',123 union all
select '2012-02-21 20:15:00.000',43 union all
select '2012-02-21 21:15:00.000',64 union all
select '2012-02-21 22:15:00.000',21 union all
select '2012-02-21 23:15:00.000',31
select
convert(varchar(10),[datetime],120) as [datetime],max(num) as num
from @T group by convert(varchar(10),[datetime],120)
/*
datetime num
---------- -----------
2012-02-01 65
2012-02-21 123
*/
------解决方案-------------------- 上面的写错了!
SQL code
select convert(varchar(10),日期,120), 值
from 表
group by convert(varchar(10),日期,120), 值
having 值 = MAX(值)
------解决方案--------------------
SQL code
create table tbtime (dt varchar(100),num int)
go
insert tbtime
select '2012-02-01 20:15:00',53 union all
select '2012-02-01 21:15:00',64 union all
select '2012-03-01 22:15:00',34 union all
select '2012-03-01 23:15:00',65 union all
select '2012-04-22 18:15:00',34 union all
select '2012-04-22 19:15:00',123 union all
select '2012-04-22 20:15:00',43 union all
select '2012-05-21 21:15:00',64 union all
select '2012-05-21 22:15:00',21 union all
select '2012-05-21 23:15:00',31
select max(num)as 最