Extraer informacion de dos consultas en un solo registro

carlos dahbura
09 de Octubre del 2013
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.


-- Extraigo El Ultimo Recibo.
SELECT W.base_id OT, MAX(Inv.transaction_date) fecha
FROM work_order W
LEFT OUTER JOIN inventory_trans Inv
ON W.base_id = Inv.workorder_base_id
WHERE W.create_date BETWEEN '24/12/12' and '24/12/12' AND
Inv.CLASS ='R'
GROUP BY W.base_id,

-- Extraigo La Ultima Emision.
SELECT W.base_id OT, MAX(Inv.transaction_date) fecha
FROM work_order W
LEFT OUTER JOIN inventory_trans Inv
ON W.base_id = Inv.workorder_base_id
WHERE W.create_date BETWEEN '24/12/12' and '24/12/12' AND
Inv.CLASS ='I'
GROUP BY W.base_id

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:


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.

-- SELECT PARA VER ULTIMOS MOVIMIENTOS.
SELECT OT.Orden, OT.Part_Id, OT.Status, OT.Close_Date, OT.Costed_Date,
R.fecha Ultimo_Recibo, I.fecha Ultima_Emision FROM
-- Extraigo las OT a Revisar.
(SELECT base_id Orden, part_id, status, close_date, costed_date
FROM Work_Order WHERE create_date BETWEEN '01/08/13' and '31/08/13' AND base_id IS NOT NULL
GROUP BY base_id, part_id, status, close_date, costed_date ) OT,
-- Extraigo El Ultimo Recibo.
(SELECT W.base_id OT, Inv.class, MAX(Inv.transaction_date) fecha
FROM inventory_trans Inv, work_order W WHERE W.base_id = Inv.workorder_base_id AND
W.create_date BETWEEN '01/08/13' and '31/08/13' AND Inv.CLASS ='R'
GROUP BY W.base_id, Inv.class) R,
-- Extraigo La Ultima Emision.
(SELECT W.base_id OT, Inv.class, MAX(Inv.transaction_date) fecha
FROM inventory_trans Inv, work_order W where W.base_id = Inv.workorder_base_id AND
W.create_date BETWEEN '01/08/13' and '31/08/13' AND CLASS ='I'
GROUP BY W.base_id, Inv.class) I
ORDER BY OT.orden

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

Espero me haya dado a entender, y puedan ayudar!

Desde ya gracias por su ayuda!