Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/10/2013, 20:54
head777
 
Fecha de Ingreso: octubre-2008
Mensajes: 101
Antigüedad: 15 años, 7 meses
Puntos: 1
Pregunta Extraer informacion de dos consultas en un solo registro

Saludos mis estimados!

Veran, quisiera pedir de su apoyo para realizar esta consulta.

Actualmente tengo una tabla llamada Inventory_Trans, en la cual guardo ordenes de trabajo de produccion y dentro de dichas ordenes existen dos tipos de datos, los cuales son: Recibos y Emisiones. Pero la cuestion es que no se como extraerlo para hacer un solo registro.

Código SQL:
Ver original
  1. -- Extraigo El Ultimo Recibo.
  2. SELECT W.base_id OT, MAX(Inv.transaction_date) fecha
  3. FROM work_order W
  4.  LEFT OUTER JOIN inventory_trans Inv
  5.           ON W.base_id = Inv.workorder_base_id
  6.           WHERE W.create_date BETWEEN '24/12/12' AND '24/12/12' AND
  7.           Inv.CLASS ='R'
  8.           GROUP BY W.base_id,
  9.  
  10. -- Extraigo La Ultima Emision.
  11. SELECT W.base_id OT, MAX(Inv.transaction_date) fecha
  12. FROM  work_order W
  13.        LEFT OUTER JOIN inventory_trans Inv
  14.           ON W.base_id = Inv.workorder_base_id
  15.           WHERE W.create_date BETWEEN '24/12/12' AND '24/12/12' AND
  16.           Inv.CLASS ='I'
  17.           GROUP BY W.base_id
[/CODE]

En estos select, extraigo los recibos y las emisiones, pero la cuestion es que aveces no encuentra una orden y es por el condicinonte Inv.CLASS =' '

Ahora la pregunta seria, ¿como poder extraer esta informacion por aparte, por los condicionantes que tengo que usar y a la vez mostrarlo en un solo registro?

El resultado que busco, mas o menos con esta consulta es por ejemplo asi:

Código:
Orden              fecha_ult_emision             fecha_ult_recibo
987                     01/01/13                        16/08/13
765                     14/09/13                        23/11/13
Tambien, habia pensado en otra forma pero no me funciono, pero se las dejo y tal vez sirve de algo.


Código SQL:
Ver original
  1. -- SELECT PARA VER ULTIMOS MOVIMIENTOS.
  2. SELECT OT.Orden, OT.Part_Id, OT.STATUS, OT.Close_Date, OT.Costed_Date,
  3. R.fecha Ultimo_Recibo, I.fecha Ultima_Emision FROM
  4. -- Extraigo las OT a Revisar.
  5. (SELECT base_id Orden, part_id, STATUS, close_date, costed_date
  6.  FROM Work_Order WHERE create_date BETWEEN '01/08/13' AND '31/08/13' AND base_id IS NOT NULL
  7.  GROUP BY base_id, part_id, STATUS, close_date, costed_date ) OT,
  8. -- Extraigo El Ultimo Recibo.
  9. (SELECT W.base_id OT, Inv.class, MAX(Inv.transaction_date) fecha
  10. FROM inventory_trans Inv, work_order W WHERE W.base_id = Inv.workorder_base_id AND
  11. W.create_date BETWEEN '01/08/13' AND '31/08/13' AND Inv.CLASS ='R'
  12. GROUP BY W.base_id, Inv.class) R,
  13. -- Extraigo La Ultima Emision.
  14. (SELECT W.base_id OT, Inv.class, MAX(Inv.transaction_date) fecha
  15. FROM inventory_trans Inv, work_order W WHERE W.base_id = Inv.workorder_base_id AND
  16. W.create_date BETWEEN '01/08/13' AND '31/08/13' AND CLASS ='I'
  17. GROUP BY W.base_id, Inv.class) I
  18. ORDER BY OT.orden

Este de aqui, es un solo select que contiene selects anidados!

[/CODE]


Espero me haya dado a entender, y puedan ayudar!

Desde ya gracias por su ayuda!

Última edición por gnzsoloyo; 10/10/2013 a las 20:34 Razón: Muy mal etiquetado.