nadzieję, że to jest trywialne dla SQL-Ninja ... stara się uzyskać następujące pracy zapytania:Korzystanie ranking-funkcja kolumna pochodzi w którym klauzula (SQL Server 2008)
To jest dla SQL Server 2008
SELECT
ROW_NUMBER() OVER (ORDER BY Date_Time DESC) AS RowNumber, *
FROM
(SELECT
T.A_ID, T.User_Name, T.Date_Time, T.Value,
U.ID, U.Name, U.Field1, U.Field2,
COUNT(U.ID) OVER() AS TotalRows
FROM
TeeTable as T
INNER JOIN
YouTable AS U ON T.U_ID = U.ID
WHERE
T.Value BETWEEN 222 AND 225) Filtered
WHERE
RowNumber BETWEEN 1 AND 5
Wartości są nieco sprecyzowane, aby podać konkretny przykład, ale duch zapytania jest całkowicie zachowany. Błąd, który otrzymuję z tego oświadczenia, to:
Nieprawidłowa nazwa kolumny "Numer wiersza".
Jeśli usunąć końcowy WHERE (RowNumber MIĘDZY ...) zwraca oczekiwany zestaw wyników (A_ID, nazwa_użytkownika, DATE_TIME itp ...), z RowNumber jako kolumny (z wartościami sensical) we wspomnianym wyniki. Nie mogę jednak porównywać tego z klauzulą WHERE. Wyraźnie robię coś głupiego, ale to przekracza mój limit SQL!
Próbowałem również zmienić to ustawienie jako CTE, (Z filtrem AS ...), ale efekt końcowy jest taki sam, wydaje się, że jest to po prostu cukier z tego, co i tak robię.
Pomysły? Jak mogę filtrować względem kolumny pochodnej RowNumber?
Unikaj znacznika 'mssql', ponieważ łatwo go pomylić z' mysql' –