create table test(t_a int,t_b int,t_c datetime)
insert into test(t_a,t_b)values (1,1,'2000-01-01')
insert into test(t_a,t_b)values (1,2,'2000-02-01')
insert into test(t_a,t_b)values (1,3,'2000-03-01')
insert into test(t_a,t_b)values (2,1,'2000-04-01')
insert into test(t_a,t_b)values (2,1,'2000-05-01')
insert into test(t_a,t_b)values (2,2,'2000-06-01')
求一句SQL得出
test表中的所有记录,要求对t_a相同的重复记录的只选取最后一条记录(按t_c排序),即t_c最大的记录。
shafa..
请下面的不用继续回帖了,已经得到正确答案了,但是现在还不允许结帖。
SQL code:
create table test(t_a int,t_b int,t_c datetime)
insert into test values (1,1,'2000-01-01')
insert into test values (1,2,'2000-02-01')
insert into test values (1,3,'2000-03-01')
insert into test values (2,1,'2000-04-01')
insert into test values (2,1,'2000-05-01')
insert into test values (2,2,'2000-06-01')
--法1
select * from test t where not exists(select 1 from test where t_a=t.t_a and t_c>t.t_c)
--法2
select * from test t where t_c =(select MAX(t_c) from test where t_a=t.t_a)
--法3
select * from test t where t_c =(select top 1 t_c from test where t_a=t.t_a order by t_c desc)
/*
t_a t_b t_c
----------- ----------- -----------------------
1 3 2000-03-01 00:00:00.000
2 2