Fórum Clausula Having #25209
21/02/2006
0
Olá, eu estou tentando usar a clausula having para filtrar os campos agrupados, mas parece que ele não está funcionando corretamente.
select itgrade.produto,
itgrade.pedido_cliente,
itgrade.numero_interno,
itgrade.linha,
itgrade.ordem,
itgrade.referencia,
itgrade.cor,
itgrade.tamanho,
itgrade.quantidade,
matprima.complemento,
itgrade.qtde_cancelada,
sum(itgrade.qtde_faturada) as Qtde_Faturadaa
from itgrade
inner join pedidos on (itgrade.empresa=pedidos.empresa and itgrade.ano=pedidos.ano and itgrade.numero_interno=pedidos.numero_interno)
inner join matprima on (itgrade.empresa=matprima.empresa and itgrade.produto=matprima.produto)
inner join clientes on (pedidos.empresa=clientes.empresa and pedidos.cliente=clientes.cliente)
where itgrade.empresa=1 and cliente = 545
group by itgrade.produto,
itgrade.pedido_cliente,
itgrade.numero_interno,
itgrade.linha,
itgrade.ordem,
itgrade.referencia,
itgrade.cor,
itgrade.tamanho,
itgrade.quantidade,
matprima.complemento,
itgrade.qtde_cancelada
having (itgrade.quantidade - sum(itgrade.qtde_faturada) - itgrade.qtde_cancelada) between 1 and 10
Eu queria mostrar somente os itens cujas quantidades pedidas não foram faturados ainda. Mas parece que a clausula having nao está filtrando corretamente, pois ela mostra quantiadades maiores do que 10. alguem sabe com resolver esse problema? O Banco é Paradox.
select itgrade.produto,
itgrade.pedido_cliente,
itgrade.numero_interno,
itgrade.linha,
itgrade.ordem,
itgrade.referencia,
itgrade.cor,
itgrade.tamanho,
itgrade.quantidade,
matprima.complemento,
itgrade.qtde_cancelada,
sum(itgrade.qtde_faturada) as Qtde_Faturadaa
from itgrade
inner join pedidos on (itgrade.empresa=pedidos.empresa and itgrade.ano=pedidos.ano and itgrade.numero_interno=pedidos.numero_interno)
inner join matprima on (itgrade.empresa=matprima.empresa and itgrade.produto=matprima.produto)
inner join clientes on (pedidos.empresa=clientes.empresa and pedidos.cliente=clientes.cliente)
where itgrade.empresa=1 and cliente = 545
group by itgrade.produto,
itgrade.pedido_cliente,
itgrade.numero_interno,
itgrade.linha,
itgrade.ordem,
itgrade.referencia,
itgrade.cor,
itgrade.tamanho,
itgrade.quantidade,
matprima.complemento,
itgrade.qtde_cancelada
having (itgrade.quantidade - sum(itgrade.qtde_faturada) - itgrade.qtde_cancelada) between 1 and 10
Eu queria mostrar somente os itens cujas quantidades pedidas não foram faturados ainda. Mas parece que a clausula having nao está filtrando corretamente, pois ela mostra quantiadades maiores do que 10. alguem sabe com resolver esse problema? O Banco é Paradox.
Danilo_braga
Curtir tópico
+ 0
Responder
Posts
08/04/2006
Wagnerbianchi
Olá Danilo,
O que acontece, no seu SELECT você declarou uma função de agregação SUM que também deve ser declarada da mesma forma e síntese na cçáusula HAVING.
O problema deve estar na forma que você declara no SELECT e modifica a forma de declaração no HAVING. Tente colocar também a função de agregação fora dos parenteses.
QQ coisa, poste!
DEUS abençõe!!
O que acontece, no seu SELECT você declarou uma função de agregação SUM que também deve ser declarada da mesma forma e síntese na cçáusula HAVING.
O problema deve estar na forma que você declara no SELECT e modifica a forma de declaração no HAVING. Tente colocar também a função de agregação fora dos parenteses.
QQ coisa, poste!
DEUS abençõe!!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)