update 二零零三年度高二级4科班内排名
set 四科成绩班内名次=(select count(distinct 姓名)+1 from 二零零三年度高二级4科班内排名 where (语数英综<a.语数英综)and(班级=3)) from 二零零三年度高二级4科班内排名 a
where 班级=3
set 四科成绩班内名次=(select count(distinct 姓名)+1 from 二零零三年度高二级4科班内排名 where (语数英综<a.语数英综)and(班级=3)) from 二零零三年度高二级4科班内排名 a
where 班级=3
update 二零零三年度高二级4科班内排名
set 四科成绩班内名次=(select count(distinct 姓名)+1 from 二零零三年度高二级4科班内排名 where (语数英综>a.语数英综)and(班级=3)) from 二零零三年度高二级4科班内排名 a
where 班级=3
FROM 二零零三年度高二级4科班内排名 ORDER BY 语数英综 DESC
SELECT * FROM #T
DROP #T
SELECT IDENTITY(INT,1,1) AS 四科成绩班内名次, 姓名,语数英综 INTO #T
FROM 二零零三年度高二级4科班内排名 ORDER BY 语数英综 DESC
UPDATE 二零零三年度高二级4科班内排名 AS A SET A.四科成绩班内名次=B.四科成绩班内名次
FROM #T AS B WHERE B.姓名=A.姓名 AND B.语数英综 =A.语数英综 DROP #T
“as 附近错误”
我要的这个的结果:
黄煌生 300.0 1
吴曙锋 270.0 2 (注意这个值)
蔡永福 270.0 2
朱周鑫 260.0 4
而不是:
黄煌生 300.0 1
吴曙锋 270.0 3 (注意这个值)
蔡永福 270.0 3
朱周鑫 260.0 4
在实际处理成绩排名,有那一位学生愿意相同的分数而并列排靠后呢?
这个问题,已经困扰我3个星期了,到现在还解决
恳请各位前辈帮忙啊!!!!!!!!!!!!!!!!!!!!
BEGIN
DROP TABLE TEMP_KZ
END
GO
CREATE TABLE TEMP_KZ(
NAME VARCHAR(10),
SCORE DECIMAL,
GRADE INT DEFAULT 0
)
INSERT INTO TEMP_KZ(NAME,SCORE)
SELECT '黄煌生',300.0
UNION SELECT '吴曙锋',270.0
UNION SELECT '蔡永福',270.0
UNION SELECT '朱周鑫',260.0
UNION SELECT '郑焕光',255.0
UNION SELECT '蔡加通',254.0
GO
SELECT ID=IDENTITY(INT,1,1), TEMP_KZ.* INTO #T
FROM TEMP_KZ ORDER BY SCORE DESC
UPDATE TEMP_KZ SET TEMP_KZ.GRADE=#T.ID
FROM #T WHERE TEMP_KZ.NAME=#T.NAME AND TEMP_KZ.SCORE =#T.SCORE SELECT * FROM TEMP_KZ ORDER BY GRADE ASCDROP TABLE TEMP_KZ
DROP TABLE #T结果:
(所影响的行数为 6 行)NAME SCORE GRADE
---------- -------------------- -----------
黄煌生 300 1
吴曙锋 270 2
蔡永福 270 3
朱周鑫 260 4
郑焕光 255 5
蔡加通 254 6(所影响的行数为 6 行)是不是你想要的?
您还是看仔细点.
请关注:
http://expert.csdn.net/Expert/topic/2999/2999380.xml?temp=.5311548
谢谢!