[firebase-br] Erro de agregação em SQL
Fernando Alécio
fernando.bg em gmail.com
Ter Dez 16 10:07:10 -03 2014
Bom dia a todos
Seguinte estou com um problema de agregação em uma SQL que funcionava no
firebird 1.0 e no firebird 1.5 não funciona da erro de agregação.
A SQL é a seguinte:
select
p.cod_produto,
p.descricao descricao_produto,
p.cod_grupo,
g.descricao descricao_grupo,
pg.cod_grade,
pg.cod_barra,
pg.referencia,
pg.PRECO_CUSTO_REAL,
pg.PRECO_RECOLOCACAO,
pg.preco_vista,
pg.preco_prazo,
p.unidade,
pg.ESTOQUE_MIN,
ie.icms_cst,
sum(ps.estoque_fisico) xEstoque
from produtos p
inner join grupos_produto g on
(p.cod_grupo = g.cod_grupo)
inner join produtos_grade pg on
(p.cod_produto = pg.cod_produto)
inner join produtos_saldos ps on
(pg.cod_produto = ps.cod_produto and
pg.cod_grade = ps.cod_grade)
inner join impostos_empresas ie on
(p.cod_imposto = ie.cod_imposto)
where
(p.baixa_estoque = 1) and
(ps.codigo_empresa in (1)) and
(ie.codigo_empresa = 1)
group by
p.cod_produto,
p.descricao,
p.cod_grupo,
g.descricao,
pg.cod_grade,
pg.cod_barra,
pg.referencia,
pg.PRECO_CUSTO_REAL,
pg.PRECO_RECOLOCACAO,
pg.preco_vista ,
pg.preco_prazo ,
p.unidade,
pg.estoque_min,
ie.icms_cst
having
(select
count(*)
from
produtos_ind pi
where ((pi.cod_pro_ind = pg.cod_produto) and
(pi.cod_grade_ind = pg.cod_grade ))) = 0
order by
p.cod_produto,
pg.cod_grade
o erro retornado é o seguinte :
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the HAVING clause (neither an aggregate function
nor a part of the GROUP BY clause).
Se for retirado o HAVING funciona normalmente, mas não traz o resultado
desejado. Alguém saberia me dizer como posso modificar a SQL para trazer
o resultado desejado?
Mais detalhes sobre a lista de discussão lista