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.
Código SQL
[-]
SELECT DISTINCT D.CODIGO,
COALESCE(MIN((SELECT (SUM(IIF(TIPO='I', cantidad, 0))-(SUM(IIF(TIPO='E',CANTIDAD,0))))
FROM inv_prod WHERE EMPRESA=D.EMPRESA AND CODIGO=D.CODIGO AND ID = D.ID)/D.CANTIDAD),0)
FROM DETPRODUCTOS D INNER JOIN INV_PROD I ON D.EMPRESA = I.empresa
AND I.ID = D.ID AND I.CODIGO = D.CODIGO
WHERE D.EMPRESA = 'emp1'
GROUP BY D.CODIGO
HAVING (SUM(IIF(I.TIPO='I', I.cantidad, 0))-(SUM(IIF(I.TIPO='E',I.CANTIDAD,0)))) >= 0
Luego, tratando de evitar consultas anuladas, utilice este codigo
Código SQL
[-]
SELECT DISTINCT D.CODIGO,
COALESCE(MIN(i.cantidad/d.cantidad),0)
FROM DETPRODUCTOS D INNER JOIN INV_PROD I ON D.EMPRESA = I.empresa
AND I.ID = D.ID AND I.CODIGO = D.CODIGO
WHERE D.EMPRESA = 'emp1'
GROUP BY D.CODIGO
HAVING (SUM(IIF(I.TIPO='I', I.cantidad, 0))-(SUM(IIF(I.TIPO='E',I.CANTIDAD,0)))) >= 0
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:
Código SQL
[-]
SELECT DISTINCT I.CODIGO,
MIN(SUM(IIF(I.TIPO='I', I.cantidad, 0))-(SUM(IIF(I.TIPO='E',I.CANTIDAD,0))))
FROM INV_PROD I
WHERE I.EMPRESA = 'emp1'
GROUP BY I.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.