业务需求如下:查询表里的重复记录,取最新的一条数据:
建表语句:
CREATE TABLE  clientlog (id int NOT NULL identity(1,1) PRIMARY KEY,
cimusername varchar(50) , 
username varchar(50) , 
password varchar(50) , 
defrayPassWord varchar(50) ,
tel varchar(50) ,  
updatecreatetime varchar(50) ,
createtime datetime default getDate(),
buyongyuanyin varchar(200) , 
cimQQ varchar(20), cimJSQQ varchar(20),  
cimName varchar(20), 
cimJSName varchar(20), 
state int, 
fukuan varchar(20),
YDprice decimal,
LTprice decimal ,
DXprice decimal);以前用的是MYSQL数据库,现在需要把数据库从MYSQL换为SQLSERVER2000,MYSQL的写法为:
select * from 
(select * from clientLog order by id desc) as a 
where a.state = 1  group by a.username order by a.id desc
但在SQLSERVER2000上不能用。
我在SQLSERVER2000上的写法为:
select * from clientlog bb where  exists(select 1 from (select max(username) as username,max(id) as id from clientlog) aa where aa.username=bb.username and aa.id=bb.id) and bb.state = 1
这样查询不出来数据,是不是没分组的原因。
请大家出出招.