mjjj
24-02-2009, 22:38:50
Hola, yo denuevo por aca molestado. Espero que me puedan ayudar, ya que llevo mucho rato tratando de resolver esto y no he podido.
Tengo un que realizar una consulta a 3 tablas simultaneamente... productos, detproductos e inv_prod.
La tabla productos contiene un listado de todos los productos de la empresa, contiene los campos descripcion y codigo, con el cual se relaciona.
La tabla detproductos contiene los campos codigo, cantidad e ID; y es la receta para poder generar el producto, es decir, para poder tener disponible un producto codigo = "0001", debo tener disponible (en inventario) la totalidad de los distintos insumos que generan el producto, y ademas con la restriccion de que al campo cantidad, es el que limita cuantos insumos (ID) en particular necesito.
Y por ultimo la tabla inv_prod, es la encargada de registrar todos los movimientos en el inventario, si es tipo I es ingreso; si es tipo E es egreso.
Los movimientos son con respecto a los insumos, no los productos, ya que las sumatoria de distintos insumos, generan un producto... esto lo define la tabla detproducto (es como la receta del producto).
La tabla inv_pro tiene los campos codigo, id, tipo, cantidad
Expongo un codigo que como que quiere funcionar pero va no del todo bien. Ojale me puedan echar una manito.
select DISTINCT P.CODIGO, P.DESCRIPCION,
coalesce(min(trunc(I.CANTIDAD/D.CANTIDAD)),0)
FROM productos P left join (detproductos d
left JOIN INV_PROD I
ON D.EMPRESA = I.EMPRESA AND D.CODIGO = I.CODIGO AND D.ID = I.ID)
on P.EMPRESA = D.EMPRESA and p.codigo = d.codigo
where D.EMPRESA = 'emp1'
and i.id = d.id
GROUP BY P.CODIGO, I.ID, P.DESCRIPCION, D.CANTIDAD
having ((COALESCE(sum(iif(TIPO ='I',I.cantidad,0)),0)
-COALESCE(sum(iif(TIPO ='E',I.cantidad,0)),0)) / D.CANTIDAD >=1)
Cualquier comentario, sugerencia o idea es bienvenida.
Saludos y gracias
Tengo un que realizar una consulta a 3 tablas simultaneamente... productos, detproductos e inv_prod.
La tabla productos contiene un listado de todos los productos de la empresa, contiene los campos descripcion y codigo, con el cual se relaciona.
La tabla detproductos contiene los campos codigo, cantidad e ID; y es la receta para poder generar el producto, es decir, para poder tener disponible un producto codigo = "0001", debo tener disponible (en inventario) la totalidad de los distintos insumos que generan el producto, y ademas con la restriccion de que al campo cantidad, es el que limita cuantos insumos (ID) en particular necesito.
Y por ultimo la tabla inv_prod, es la encargada de registrar todos los movimientos en el inventario, si es tipo I es ingreso; si es tipo E es egreso.
Los movimientos son con respecto a los insumos, no los productos, ya que las sumatoria de distintos insumos, generan un producto... esto lo define la tabla detproducto (es como la receta del producto).
La tabla inv_pro tiene los campos codigo, id, tipo, cantidad
Expongo un codigo que como que quiere funcionar pero va no del todo bien. Ojale me puedan echar una manito.
select DISTINCT P.CODIGO, P.DESCRIPCION,
coalesce(min(trunc(I.CANTIDAD/D.CANTIDAD)),0)
FROM productos P left join (detproductos d
left JOIN INV_PROD I
ON D.EMPRESA = I.EMPRESA AND D.CODIGO = I.CODIGO AND D.ID = I.ID)
on P.EMPRESA = D.EMPRESA and p.codigo = d.codigo
where D.EMPRESA = 'emp1'
and i.id = d.id
GROUP BY P.CODIGO, I.ID, P.DESCRIPCION, D.CANTIDAD
having ((COALESCE(sum(iif(TIPO ='I',I.cantidad,0)),0)
-COALESCE(sum(iif(TIPO ='E',I.cantidad,0)),0)) / D.CANTIDAD >=1)
Cualquier comentario, sugerencia o idea es bienvenida.
Saludos y gracias