Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/01/2010, 13:03
Avatar de 8vio
8vio
 
Fecha de Ingreso: marzo-2008
Ubicación: Detras del monitor
Mensajes: 168
Antigüedad: 16 años
Puntos: 6
Respuesta: Seleccionar uno o mas registros dinamicamente

Ummmm si me hubieras colocado las tablas y sus campos me queda mas acertado.

Esto funciona y puedes colocar los campos de detalle que necesites, solo que tienes que ver como te manejas con el group by que esta alli, como te dije antes: con las tablas y campos te lo hacia mas acertado, pero ya puedes tener una idea de como hacerlo.

Con el with haces unas especies de vistas temporales que puedes reutilizar a lo largo del cuerpo del query (es donde esta el ultimo select)


Deben existir otras maneras de hacerlo pero como este tema esta desierto coloco algo para colaborar que pense al instante y no analicé mucho, el que pueda tunnear esto bienvenido sea.

Código:

WITH

nuevo AS ( SELECT s.pedido AS nuevos, v.detalle AS detalle  FROM pedidos s, detalle v
         WHERE s.tipo='nuevo' AND s.pedido=v.pedido
         ),
         
no_nuevos AS(SELECT s.pedido AS no_nuevos, v.detalle AS detalle FROM pedidos s, detalle v
  WHERE s.tipo<>'nuevo' AND s.pedido=v.pedido),         

total_no_nuevos AS (SELECT COUNT(s.pedido) AS total_no_nuevos FROM pedidos s 
             WHERE s.tipo<>'nuevo' ),

total AS (SELECT COUNT(s.pedido) AS total FROM pedidos s)


SELECT n.nuevos, n.detalle FROM nuevo n
GROUP BY n.nuevos, n.detalle HAVING COUNT(n.nuevos)>0
UNION ALL
SELECT v.no_nuevos, v.detalle  FROM no_nuevos v, total t, total_no_nuevos o
WHERE o.total_no_nuevos = t.total
Saludos y suerte