[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