Con la esperanza de que esto es trivial para un SQL-Ninja ... estado tratando de conseguir el siguiente trabajo de consulta:usar el ordenamiento de funciones columna derivada en la cláusula WHERE (SQL Server 2008)
Esto es para 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
Los valores se idearon de alguna manera para dar un ejemplo específico, pero el espíritu de la consulta se conserva por completo. El error que obtengo de esta declaración es:
Nombre de la columna no válida 'RowNumber'.
Si quito la final cláusula WHERE (RowNumber ENTRE ...) que devuelve un conjunto de resultados esperados (A_ID, Nombre_usuario, Date_Time etc ...), con RowNumber como una columna (con valores sensical) en dicha resultados. Sin embargo, no puedo compararlo en la cláusula WHERE. Claramente estoy haciendo algo estúpido, pero esto llega a mi límite de SQL.
He intentado reordenar esto también como CTE, (CON FILTRADO COMO ...) pero el resultado final es el mismo, parece que es solo un azúcar para lo que ya estoy haciendo.
Ideas? ¿Cómo puedo filtrar contra la columna derivada RowNumber?
Evita la etiqueta 'mssql' ya que se confunde fácilmente con' mysql' –