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-- 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
[/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-- 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!
[/CODE]
Espero me haya dado a entender, y puedan ayudar!
Desde ya gracias por su ayuda!