![]() |
Consulta 3 tablas
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.
Cualquier comentario, sugerencia o idea es bienvenida. Saludos y gracias |
Amigos despuse de mucho probar llegue a un codigo que debe funcionar, pero es muy lento ya que tiene consultas anidadas.
Al tener pocos registros funciona de maravilla, agregen un alto numero de registros y simplemente se tranco el PC. Expongo el codigo.
Luego, tratando de evitar consultas anuladas, utilice este codigo
El resultado fue que para cada registro que cumpla con la condiciones del "having", realiza el cuociente y obtengo un minimo que no es real. Por ultimo, y creo que de esta manera debiera funcionar, es que llegue a este codigo:
es asunto aqui es que me arroja un error... "SQL error code = -104. Nested aggregate functions are not allowed." Bueno eso es lo que me podido sacar en limpio, ojala alguien me pueda ayudar a solucionar este tema que me tiene de loko. Saludos y muchas gracias de ante mano. |
El error que te da es porque no puedes utilizar este tipo de sentecias min(sum(i.cantidad)) Chequea la referencia SQL Error 36 de este enlace.
Saludos. |
La franja horaria es GMT +2. Ahora son las 04:18:01. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi