[firebase-br] SQL LEFT JOIN

Gabriel Bonzanini gabriel.bonzanini em gmail.com
Qua Jun 6 11:35:17 -03 2018


Revise os joins utilizados, verificando se está sendo feita a ligação
utilizando todas as primary keys das tabelas referenciadas.

Em 5 de junho de 2018 22:19, Renan Rogowski Pozzo <renanrpozzo em gmail.com>
escreveu:

> O SUM vai somar todos os registros que retonarem na consulta. Se algum dos
> joins a relação retornar mais de um registro vai somar duas, ou mais,
> vezes.
>
> Tente fazer o select retornando todos os registros para ver se esse é o
> problema.
>
> Em ter, 5 de jun de 2018 às 21:18, Paulo Geloramo <
> assisinformatica em gmail.com> escreveu:
>
> > SELECT
> > COALESCE(SUM(I.QUANTIDADE), 0) AS REMESSA,
> > COALESCE(SUM(C.VENDA), 0) AS VENDA,
> > COALESCE(SUM(Q.QUANTIDADE), 0) AS ESTOQUE
> > FROM NOTA_PONTO_ITEM I
> > JOIN PONTO T ON T.ID_PONTO = I.ID_PONTO
> > JOIN EDICAO E ON E.ID_EDICAO = I.ID_EDICAO
> > JOIN PRODUTO P ON P.ID_PRODUTO = E.ID_PRODUTO
> > JOIN ASSUNTO A ON A.ID_ASSUNTO = P.ID_ASSUNTO
> > LEFT JOIN CE_PONTO_ITEM C ON (C.ID_PONTO = T.ID_PONTO AND C.ID_EDICAO =
> > E.ID_EDICAO)
> > LEFT JOIN ESTOQUE Q ON (Q.ID_PONTO = T.ID_PONTO AND Q.ID_EDICAO =
> > E.ID_EDICAO)
> > WHERE T.CODIGO_PONTO = 1000
> > AND A.CODIGO_ASSUNTO = 10
> >
> > Firebird 2.5.8
> > Quando faço três consultas separadas
> > retorna o total correto.
> >
> > Com dois LEFT JOIN retorna
> > o total da REMESSA errado.
> >
> > Alguma sugestão para retornar
> > REMESSA, VENDA e ESTOQUE na mesma
> > consulta?
> >
> > --
> > Paulo Esteves
> > ______________________________________________
> > 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://www.firebase.com.br/pesquisa_lista.html
> >
> --
> Abraço,
> Renan Rogowski Pozzo
>
> *"E a paz de Deus, que excede todo o entendimento, guardará os vossos
> corações e os vossos pensamentos em Cristo Jesus." Filipenses 4.7*
> ______________________________________________
> 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://www.firebase.com.br/
> pesquisa_lista.html
>



Mais detalhes sobre a lista de discussão lista