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)