MSSQL: необходимо объявить скалярную переменную @rownum - PullRequest
0 голосов
/ 11 апреля 2011

Один из моих запросов - рейтинг по игре.

Запрос приведен ниже, и в SQL Server Management Studio отображается ошибка: «Необходимо объявить скалярную переменную @rownum»

что с ним не так?

Спасибо большое!

 $sql1_1     = "SET @rownum := 0";



$sql2_2       =   "SELECT * FROM (
                      SELECT @rownum := @rownum + 1 AS rank, totalpoints, useridFB, game2points
                      FROM theuser ORDER BY game2points DESC
                      ) as result WHERE useridFB=1234";



        mssql_query($sql1_1); 
        $result = mssql_query($sql2_2);

        $row = mssql_fetch_array($result);
        $therank = $row['rank'];

1 Ответ

3 голосов
/ 11 апреля 2011

Вы используете синтаксис MySql в SQL Server.

Используйте функцию row_number() для воспроизведения вашей текущей логики.

SELECT *
FROM   (SELECT row_number() OVER (ORDER BY game2points DESC) AS [rank],
               totalpoints,
               useridFB,
               game2points
        FROM   theuser) AS result
WHERE  useridFB = 1234  

Или, возможно, вы захотите исследовать rank в зависимости от того, как вы хотите обрабатывать связи.

...