Sql MS访问:在更新中使用密集排列
我有一个排名表,包含不同等级的分数:Sql MS访问:在更新中使用密集排列,sql,ms-access,sql-update,dense-rank,Sql,Ms Access,Sql Update,Dense Rank,我有一个排名表,包含不同等级的分数: (R) Rankname: string, name of the rank (ID) PlayerID: foreign key(int) (S) Score: integer, higher score means higher endrank (P) Position: integer, representing the location in the rank 更新前: R ID S P 'a' 0
(R) Rankname: string, name of the rank
(ID) PlayerID: foreign key(int)
(S) Score: integer, higher score means higher endrank
(P) Position: integer, representing the location in the rank
更新前:
R ID S P
'a' 0 5 "undefined"
'a' 1 10 "undefined"
'a' 2 15 "undefined"
'b' 0 5 "undefined"
'b' 1 10 "undefined"
'b' 2 10 "undefined"
'b' 3 15 "undefined"
更新后:
'a' 0 5 3
'a' 1 10 2
'a' 2 15 1
'b' 0 5 3
'b' 1 10 2
'b' 2 10 2
'b' 3 15 1
我试图创建一个使用
UPDATE
和densite\u RANK
的查询,但我不知道如何使其工作。这取决于创建一个查询来统计不同的记录,在本例中,此查询称为qry。要更新表格,您可以说:
UPDATE MyTable
SET MyTable.P =
DCount("*","qry","s<=" & [MyTable].[s] & " and r=""" & [MyTable].[r] & """");
MyTable有别名。JET不支持
densite\u-RANK
。如果您的后端数据库是SQL Server,则可以使用ODBC直通查询,并在那里使用Transact-SQL,但在其他情况下,您必须模拟DENSE\u RANK
。
SELECT DISTINCT z.r, z.s
FROM MyTable AS z;