Buenos días amlegazpe, no entendí muy bien cuál es el problema que tienes con tu consulta, a ver si explicando cómo funciona la función TOP te queda un poco más claro. La función TOP regresa LOS PRIMEROS N REGISTROS que devuelva tu consulta, veamos si con un ejemplo se entiende
Código SQL:
Ver original--declaramos una tabla de ejemplo
DECLARE @Tabla TABLE (id INT, descripcion VARCHAR(10))
--insertamos registros de ejemplo
INSERT INTO @Tabla VALUES (1, 'uno')
INSERT INTO @Tabla VALUES (2, 'dos')
INSERT INTO @Tabla VALUES (3, 'tres')
INSERT INTO @Tabla VALUES (4, 'cuatro')
INSERT INTO @Tabla VALUES (5, 'cinco')
Ahora bien, si hacemos una consulta como esta
El resultado sería
Código:
id|descripcion
------------------
3|tres
4|cuatro
5|cinco
hasta aquí creo que no hay problema, si ahora hacemos algo como esto
Código SQL:
Ver originalSELECT top 1 * FROM @Tabla WHERE id >= 3
Lo primero que se ejecuta es la consulta de manera normal y sobre el resultado entonces MUESTRA SÓLO EL PRIMER REGISTRO de tal manera que la consulta mostraría lo siguiente:
Código:
id|descripcion
------------------
3|tres
Si continuas con problemas para aplicar la función top te pido que muestres algunos datos de tus tablas y nos expliques qué es lo que quieres de salida, para ver en qué podemos ayudarte.
Saludos
Leo