SELECT b.*,
(SELECT COUNT(1)
FROM boyd
WHERE userName = b.userName AND alload >= b.alload) AS NUM
FROM boyd b
WHERE ((SELECT COUNT(1)
FROM boyd
WHERE userName = b.userName AND alload >= b.alload) <= 3)order by userName ASC,NUM ASC
insert into boyd values ('项目一','boyd',50)
insert into boyd values ('项目二','boyd',10)
insert into boyd values ('项目三','boyd',30)
insert into boyd values ('项目四','boyd',80)
insert into boyd values ('项目五','boyd',120)
insert into boyd values ('项目六','boyd',1)
insert into boyd values ('项目一','you',150)
insert into boyd values ('项目二','you',70)
insert into boyd values ('项目三','you',500)
insert into boyd values ('项目四','you',500)
insert into boyd values ('项目五','you',500)
insert into boyd values ('项目六','you',500)
--方案一
SELECT b.*,
(SELECT COUNT(1)
FROM boyd
WHERE userName = b.userName AND alload >= b.alload) AS NUM
FROM boyd b
WHERE ((SELECT COUNT(1)
FROM boyd
WHERE userName = b.userName AND alload >= b.alload) <= 3)
--方案二
SELECT projectId, userName, alload
FROM (SELECT b.*,
(SELECT COUNT(1)
FROM boyd
WHERE userName = b.userName AND alload >= b.alload) AS NUM
FROM boyd b) DERIVEDTBL
WHERE (NUM <= 3)
select top 3 * ,(select count(*)+1 from TB_Chengji b where b.chines>t.chines) as HeightChines
from TB_Chengji as t where name='zxp' order by HeightChines
insert into boyd values ('项目一','boyd',50)
insert into boyd values ('项目二','boyd',10)
insert into boyd values ('项目三','boyd',30)
insert into boyd values ('项目四','boyd',80)
insert into boyd values ('项目五','boyd',120)
insert into boyd values ('项目六','boyd',1)
insert into boyd values ('项目一','you',150)
insert into boyd values ('项目二','you',70)
insert into boyd values ('项目三','you',500)
insert into boyd values ('项目四','you',500)
insert into boyd values ('项目五','you',500)
insert into boyd values ('项目六','you',500)
--方案一
SELECT b.*,
(SELECT COUNT(1)
FROM boyd
WHERE userName = b.userName AND alload >= b.alload) AS NUM
FROM boyd b
WHERE ((SELECT COUNT(1)
FROM boyd
WHERE userName = b.userName AND alload >= b.alload) <= 3)
--方案二
SELECT projectId, userName, alload
FROM (SELECT b.*,
(SELECT COUNT(1)
FROM boyd
WHERE userName = b.userName AND alload >= b.alload) AS NUM
FROM boyd b) DERIVEDTBL
WHERE (NUM <= 3)
insert into boyd values ('项目一','boyd',50)
insert into boyd values ('项目二','boyd',10)
insert into boyd values ('项目三','boyd',30)
insert into boyd values ('项目四','boyd',80)
insert into boyd values ('项目五','boyd',120)
insert into boyd values ('项目六','boyd',1)
insert into boyd values ('项目一','you',150)
insert into boyd values ('项目二','you',70)
insert into boyd values ('项目三','you',500)
insert into boyd values ('项目四','you',60)
insert into boyd values ('项目五','you',120)
insert into boyd values ('项目六','you',112)
select @con=@con+' union select * from ( select top 3 * from boyd where userName='''+convert(nvarchar(50),userName)+'''order by alload desc) a'
from boyd group by userName
或者这样
SELECT projectId, userName, allload
FROM (SELECT b.*,
(SELECT COUNT(1)
FROM NewTable
WHERE userName = b.userName AND allload >= b.allload) AS NUM
FROM NewTable b) DERIVEDTBL
WHERE (NUM <= 3)
SELECT b.*,
(SELECT COUNT(1)
FROM NewTable
WHERE userName = b.userName AND allload >= b.allload) AS NUM
FROM NewTable b
WHERE ((SELECT COUNT(1)
FROM NewTable
WHERE userName = b.userName AND allload >= b.allload) <= 3)
这样试下,别名不能这样用