Ver Mensaje Individual
  #3  
Antiguo 28-03-2024
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.757
Reputación: 21
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Para empezar te falta utilizar los ALIAS en cada campo.
De lo contrario, un campo que esté en dos tablas se convierte en ambiguo.
Código SQL [-]
select coalesce(???.cant_a, 0)
from producto_bodega pp, producto v, empresa e
where
(???.cod_producto = :codigo or ???.cod_barra = :codigo) and
???.key_bodega = :key_bodega and
v.operativo = 'S' and
v.key_empresa = e.key_empresa and
v.key_empresa = :key_empresa and
pp.key_producto = v.key_producto

Por otro lado, habría que saber cómo se unen las tablas (por ejemplo, mediante las Primary Keys de cada una).
Sin eso no se puede analizar el SQL.

Por último te recomiendo utilizar JOINs ya que hacen la consulta mucho más comprensible, y tienes formas de optimizar la consulta (JOIN, LEFT JOIN)
Código SQL [-]
select coalesce(???.cant_a, 0)
from producto_bodega pp
join producto v on pp.key_producto = v.key_producto
join empresa e on v.key_empresa = e.key_empresa
where
-- Filtro general (bodega+empresa + operativo)
???.key_bodega = :key_bodega and
v.key_empresa = :key_empresa and
v.operativo = 'S' and
-- Filtro especifico (codigo de producto o codigo de barra)
(???.cod_producto = :codigo or ???.cod_barra = :codigo)
Responder Con Cita