1

さまざまなランクのスコアを含むランキング テーブルがあります。

(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同様に使用するクエリを作成しようとしましたDENSE_RANKが、それを機能させる方法がわかりませんでした。

4

1 に答える 1

3

これは、個別のレコードをカウントするためのクエリの作成に依存します。この例では、このクエリは qry と呼ばれます。テーブルを更新するには、次のように言えます。

UPDATE MyTable 
SET MyTable.P = 
  DCount("*","qry","s<=" & [MyTable].[s] & " and r=""" & [MyTable].[r] & """");

注意すべき点がもう 1 つあります。これは qry です。

SELECT DISTINCT z.r, z.s
FROM MyTable AS z;

MyTable は別名です。

于 2013-03-25T11:38:31.213 に答える