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:
[/CODE]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
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:
Tambien, habia pensado en otra forma pero no me funciono, pero se las dejo y tal vez sirve de algo.Orden fecha_ult_emision fecha_ult_recibo 987 01/01/13 16/08/13 765 14/09/13 23/11/13
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!