[firebase-br] Ajuda com soma
acf em andreconrado.net
acf em andreconrado.net
Qui Jan 19 10:14:48 -03 2012
Um problema mt comum quando se trabalha com a função SUM() é comum
esquecer de tratar os valores NULLs. Então pode ser este o seu
problema, ainda mais se vc trocar o INNER por LEFT JOIN. Utilize então
o conjunto SUM(COALESCE(<campo>, 0)), isso resolve o problema.
Agora, aproveitando a deixa, eu gostaria mto de saber pq os
desenvolvedores do Firebird não tratam isso de forma direta. Ou será
que estou enganado!!!!!
abçs.
Citando Wilson Rosa <wsrosa em gmail.com>:
> José Luiz,
>
> Para não gerar erros, os campos na cláusula GROUP BY devem ser os mesmos da
> cláusula SELECT antes do SUM, ou seja,
>
> SELECT *CG.id_carga, I.cod_prod, I.desc_prod, I.cbarra, pr.estoque*,
> ...
> GROUP BY *CG.id_carga, I.cod_prod, I.desc_prod, I.cbarra, pr.estoque*
>
> Se você precisa agrupar por outros campos, como, *R.nome_regiao, U.nome,
> CG.rota*, coloque-os na cláusula SELECT e inclua as respectivas tabelas nas
> cláusulas INNER JOIN.
>
>
> *Wilson Rosa
> wsrosa em gmail.com
> *
> *12 8160-8030*
>
>
>
> Em 18 de janeiro de 2012 22:41, Jose Luiz de Medeiros <
> joseluiz em digitoneletronica.com.br> escreveu:
>
>> Boa noite.
>>
>> Tenho a seguinte estrutura de tabelas:
>>
>> CARGA
>> ID_CARGA
>> ROTA
>> ..
>>
>> ITEM_CARGA
>> ID
>> ID_CARGA
>> ID_PEDIDO
>> ..
>>
>> PEDIDO
>> ID_PEDIDO
>> ID_CLIENTE
>> ..
>> ITEM_PEDIDO
>> ID_ITEM
>> ID_PEDIDO
>> ID_PRODUTO
>> QTDE
>> ..
>>
>> PRODUTOS
>> ID_PROD
>> DESCRICAO
>> ESTOQUE
>> ..
>>
>> Preciso criar uma consulta onde listo os produtos de uma determinada
>> carga, agrupada somando os valores vendidos nos pedidos de uma determinada
>> carga.
>> Fiz essa view mas os resultados não estão batendo. determinado produto o
>> valor confere e determinado produto a soma vem errada, alguem teria uma
>> ideia para me ajudar? estou precisando muito de uma ajuda.
>>
>> Minha view:
>> CREATE VIEW VW_CARGA_CONDENSADA_PROD(
>> ID_CARGA,
>> NOME_REGIAO,
>> SEPARADOR,
>> ROTA,
>> COD_PROD,
>> DESC_PROD,
>> CBARRA,
>> ESTOQUE,
>> VENDIDO,
>> FALTA)
>> AS
>> select CG.id_carga,I.cod_prod,I.desc_prod,I.cbarra,pr.estoque
>> sum(I.qtde_vendido)as VENDIDO,
>> sum(PR.estoque - I.qtde_vendido)as FALTA
>> from Item_pedido I
>> inner join pedido P on(P.pedv = I.pedv)
>> inner join item_carga IG on (IG.id_pedido = P.pedv)
>> inner join carga CG on(CG.ID_CARGA = IG.ID_CARGA)
>> inner join produtos PR on(I.cod_prod = PR.cod)
>> where
>> i.qtde_vendido > 0
>> and
>> I.qtde_separado < i.qtde_vendido
>> group by
>> CG.id_carga,R.nome_regiao,U.nome,CG.rota,I.cod_prod,I.desc_prod,I.cbarra
>>
>> CHAMO ESSA VIEW ASSIM:
>>
>> SELECT * FROM VW_CARGA_CONDENSADA_PROD
>> WHERE ID_CARGA = 100
>>
>> Essa view não me traz a realidade de uma carga, vem com poucos produtos e
>> a soma de alguns produtos não confere.
>>
>> Agradeço quem puder me dar uma força...
>>
>> Jose Luiz
>> Jose Luiz de Medeiros
>> -----------------------------------
>> Programmer & TI Professional
>> :: delphi - php - firebird - mysql ::
>> (31)9628-4764
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
André Conrado
+55 21 88406232
http://andreconrado.net
"Posso todas as coisas naquele que me fortalece" Filipenses 4:13
Mais detalhes sobre a lista de discussão lista