0

hiscoreテーブルをページ付けしたい。私は2つのテーブルを持っています:

gs_score_table

id (auto increment int)
project_id (int)
game_id (int)
user_id (int)
entry_date (datetime)
score (int)

ユーザー

id (auto increment int)
user_name (varchar)

私が欲しいのは、hiscoresのリストとorder listをで取得することですが、scores DESC5行目(this:)で常にエラーが発生しますROW_NUMBER() OVER (ORDER BY total_score DESC) AS RowNumber

列名'total_score'が無効です。

誰か助けてくれませんか。

SELECT TOP 50
    *
FROM
    (SELECT
        ROW_NUMBER() OVER (ORDER BY total_score DESC) AS RowNumber,
        gs.user_id,
        users.user_name,
        SUM(gs.score) AS total_score, 
        (SELECT COUNT(gs2.id) FROM gs_score_table AS gs2 WHERE gs2.user_id = gs.user_id AND gs2.game_id = 1) AS games_played,
        TotalRows=Count(*) OVER()
    FROM
        gs_score_table AS gs
    INNER JOIN
        users ON users.id = gs.user_id
    WHERE
        gs.project_id = 2
        AND gs.game_id = 1
        AND CAST(gs.entry_date AS date) BETWEEN '2012-04-23' AND '2012-04-23'
    GROUP BY
        gs.user_id, users.user_name) _tmpInlineView WHERE RowNumber >= 1
4

1 に答える 1

1

ROW_NUMBERORDERBY句でエイリアス「total_score」を使用することはできません。代わりに、次のものが必要です。

ROW_NUMBER() OVER (ORDER BY SUM(gs.score) DESC) AS RowNumber
于 2012-05-11T08:26:38.703 に答える