Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/04/2009, 06:02
benito_camelas
 
Fecha de Ingreso: noviembre-2003
Mensajes: 35
Antigüedad: 20 años, 6 meses
Puntos: 0
Limitar número de resultados de una consulta

Hola,
Estoy intentando hacer una consulta que una resultados de dos tablas, pero necesito que me ofrezca sólo 10 resultados ordenados por fecha.
Seguro que hay mucha gente que se ha encontrado en situaciones similares, pero por mucho que he buscado en internet no he sido capaz de encontrar una solución que funcione:
Lo que intento es hacer un select por cada una de las tablas, unidas por un union, y por encima de esto hago un select top 10 y la ordenación por fecha.
Funciona todo salvo select top 10.

Me explico con el código:

(SELECT nombre AS nombre, descripcion AS descripcion, cast(ref_art AS int) AS referencia, fecha AS fecha FROM articulos) UNION (SELECT nombre_art AS nombre, 'notext' AS descripcion, cast(referencia AS int) AS referencia, fecha AS fecha FROM referencias) ORDER BY fecha;

Esto funciona, o para simplificar el código, ésto funcionaría:

(SELECT nombre AS nombre, fecha AS fecha FROM articulos) UNION (SELECT nombre_art AS nombre, fecha AS fecha FROM referencias) ORDER BY fecha;

Pero si hago un select top 10 no me funciona:

SELECT TOP 10 * (SELECT nombre AS nombre, fecha AS fecha FROM articulos) UNION (SELECT nombre_art AS nombre, fecha AS fecha FROM referencias) ORDER BY fecha;

¿Alguien sabe qué estoy haciendo mal?
También he probado con una solución que amablemente me han dado en el foro de base de datos, que sería añadir al final de la sentencia "LIMIT 10", por lo visto esto funciona en MySQL, pero parar SQLServer no funciona.
Si alguien tiene alguna idea de cómo se podría hacer se lo agradecería mucho.

Un saludo.