mssql保留表中数值最小的

mssql保留表中数值最小的

create table test
(
userName varchar(30),
[month]  varchar(20),
salary   numeric(15,4)
)
 
insert into test values('adam','201001',4500)
insert into test values('adam','201002',3500)
insert into test values('adam','201003',2500)
go
insert into test values('alice','201001',4500)
insert into test values('alice','201002',3500)
insert into test values('alice','201003',5500)
go
insert into test values('lucy','201001',4500)
insert into test values('lucy','201002',3500)
insert into test values('lucy','201003',9500)
go
insert into test values('emily','201001',10500)
go

delete a from test a, (select userName   min(salary) as salary from test group by username) b
where a.username=b.username and a.salary>b.salary

delete a
from test a
where exists ( select 1 from test
where username = a.username
and salary < a.salary
)

delete test  from test t1
 inner join (select username,min(salary)  as  salary from test group by username )
  t on t.userName = t1.userName and t1.salary > t.salary

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有