--参考,是按name分组,取时间最大的那一个
declare @tab table(id int,name varchar(20),reversion varchar(20),uploadtime datetime)insert @tab(id,name,reversion,uploadtime)
values(1,'csdn','A','2005-05-21')
insert @tab(id,name,reversion,uploadtime)
values(2,'csdn','B','2005-05-22')
insert @tab(id,name,reversion,uploadtime)
values(3,'donews','A','2005-05-23')
insert @tab(id,name,reversion,uploadtime)
values(4,'donews','C','2005-05-27')select * from @tab
select * from @tab tem
where uploadtime=(select max(uploadtime) from @tab where name=tem.name)
解决方案 »
- bcp如何导出text类型字段?
- 求一条SQL语句啊!
- 请教为何用restore with RECOVERY 还原后一个1m大小的备份文件会产生1个5g的log文件
- 在SQL Server2000中怎么限制表中字段不能包含数字
- 如何查找一个数据库中所有表的主键的最大值?急!!!谢谢!
- 有人知道吗?我想改sql数据库"打开表/返回所有行"里的ID值.总是弹"无法编辑该单元"对话框.请问怎么改.谢谢!
- 帮忙看看这个问题,我给了一个存储过程,但出现错误。
- 给一个解决方案!在线等待
- 求某日以前,所有人最后的金额并合计的SQL语句
- 太不可思议了:内存表竟然比永久表慢12倍以上???SQL Server怎样优化的?
- Sql查询问题
- 请教SQL高手:如何把字符串中第1、3、5、7。。。个字符给取出来,???
select * from hotel_sendtime where id in
(
select id=max(id) from hotel_sendtime group by hotel_id
)
order by sendtime desc--如果ID不是自增,那如果Sendtime的时间是不断加大且唯一的话,可用SendTime代替ID
--select 日期=left(sendtime,10),次数=count(lotel_id),最后=max(sendtime)
from hotel_sendtime
group by left(sendtime,10)
order by left(sendtime,10) desc
select
a.*
from
hotel_sendtime a
where
not exists(select
1
from
hotel_sendtime
where
hotel_id=a.hotel_id
and
id!=a.id
and
sendtime>a.sendtime)
order by
a.sendtime desc
2、
select
a.*,
times = (select
count(*)
from
hotel_sendtime
where
hotel_id=a.hotel_id
and
datediff(d,sendtime,a.sendtime)=0)
from
hotel_sendtime a
where
not exists(select
1
from
hotel_sendtime
where
hotel_id=a.hotel_id
and
datediff(d,sendtime,a.sendtime)=0
and
id!=a.id
and
sendtime>a.sendtime)
order by
a.sendtime desc