[firebase-br] RES: RES: Select com 3 tabelas

Emilio Córdova (jvsistema) emilio em jvsistema.com
Qua Abr 8 10:55:33 -03 2015


select f.fornecedor,f.data,d.conta,d.custo,d.vlr, c.conta,c.custo,c.vlr 
from fornecedor f    <---- Aqui vai a tabela principal da query, aquela que
irá girar todos os registros
inner join credito c on c.id_fornecedor = f.id_fornecedor |/ aqui as tabelas
que serão filtradas pela 
inner join debito d on d.id_fornecedor = f.id_fornecedor |\ principal
group by f.fornecedor,f.data,d.conta,d.custo,d.vlr,c.conta,c.custo,c.vlr

só reveja o group by.

PS: na linha do FROM é só a tabela principal, as demais são relacionadas no
Inner / Left Join.

Att,
Emilio Córdova
emilio em jvsistema.com

-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Max Dudu
Enviada em: quarta-feira, 8 de abril de 2015 10:22
Para: FireBase
Assunto: Re: [firebase-br] RES: Select com 3 tabelas

Seria assim entao....

Select f.id_fornecedor, f.fornecedor, f.data, d.conta,d.conta, d.custo,
d.vlr ,c.conta, c.custo , c.vlr From fornecedor f, debito d, credito c Inner
Join credito on ( f.id_fornecedor = c.id_fornecedor) Inner Join debito on (
f.id_fornecedor = d.id_fornecedor )

Em 8 de abril de 2015 09:54, Emilio Córdova (jvsistema) <
emilio em jvsistema.com> escreveu:

> Bom dia,
>
> Não me metendo a entendido, mas não seria melhor trabalhar com Inner 
> Join ou Left Join?
> Desta forma que está o script vai ter que carregar na memória três 
> tabelas e deixar a resposta um pouco demorada.
>
> Segue,
>
> select f.fornecedor,f.data,d.conta,d.custo,d.vlr, 
> c.conta,c.custo,c.vlr from fornecedor f inner join credito c on 
> c.id_fornecedor = f.id_fornecedor inner join debito d on 
> d.id_fornecedor = f.id_fornecedor group by 
> f.fornecedor,f.data,d.conta,d.custo,d.vlr,c.conta,c.custo,c.vlr
>
> desta forma, somente a fornecedor será carregada inteira e as outras 
> somente filtradas (menos registros na memória).
>
> Outra coisa é com relação ao group by que acredito que seria somente
assim:
>         group by f.fornecedor,f.data,d.conta,d.custo,c.conta,c.custo
> Mas daí é outra coisa que precisa ser estudado.
>
> Att,
>
> Emilio Córdova
> emilio em jvsistema.com
>
> -----Mensagem original-----
> De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Max Dudu 
> Enviada em: quarta-feira, 8 de abril de 2015 08:25
> Para: FireBase
> Assunto: Re: [firebase-br] Select com 3 tabelas
>
> Veja se é isso que voce quer....Creio que faltou os relacionamentos 
> entre as tabelas, para saber de onde qual operação vc esta fazendo.
> principalmente com o fornecedor....
>
> select f.fornecedor,f.data,d.conta,d.custo,d.vlr, 
> c.conta,c.custo,c.vlr from fornecedor f,debito d, credito c where 
> f.id_fornecedor = d.id_fornecedor and f.id_fornecedor = 
> c.id_fornecedor group by f.fornecedor,f.data,d.conta,d.custo,d.vlr,
> c.conta,c.custo,c.vlr
>
> Coisa simples mais tente fazer ai e veja se da certo.
>
> Em 7 de abril de 2015 12:50, claudio em o2tecnologia.com.br < 
> claudio em o2tecnologia.com.br> escreveu:
>
> > Boa tarde.
> >
> > Acredito que o que precisa seja isso.
> >
> > Select TabelaA.Id, TabelaA.Fornecedor, TabelaA.Data, 
> > TabelaB.Conta_Debito, TabelaB.Centro_Custo as Centro_CustoB, 
> > TabelaB.Vlr as VlrB, TabelaC.Conta_Credito, TabelaC.Centro_Custo as 
> > Centro_CustoC, TabelaC.Vlr as VlrC From TabelaA Inner Join TabelaB 
> > on ( TabelaB.Id = TabelaA.Id ) Inner Join TabelaC on ( TabelaC.Id = 
> > TabelaA.Id )
> >
> > Cláudio Prudente
> > *
> > *
> > On 06/04/2015 16:46, Val - Ig wrote:
> >
> >> Pessoal,
> >>
> >> Estou com o seguinte cenário:
> >>
> >> Estrutura das
> >>     Tabelas
> >>
> >>
> >> Tabela A     Tabela B     Tabela C
> >> Id     Id     Id
> >> Fornecedor     Conta_Debito     Conta_Crédito
> >> Data     Centro_Custo     Centro_Custo
> >> Vlr     Vlr     Vlr
> >> Dados
> >>
> >>
> >> Tabela A     Tabela B     Tabela C
> >> 123     123     123
> >> Exemplo
> >>     31115     21112
> >> 01/03/2015     01.11     01.11
> >>  R$200,00     R$100,00     R$200,00
> >>
> >>     123
> >>
> >>
> >>     42116
> >>
> >>
> >>     02.10
> >>
> >>
> >>     R$100,00
> >>
> >> Apresentação
> >>
> >>
> >> 123 - Exemplo - 01.03.2015 - 31115 - 01.11 - 100 - 21112 - 01.11 -
> >> 200
> >> 123 - Exemplo - 01.03.2015 - 42116 - 02.10 - 100 - 21112 - 01.11 -
> >> 200
> >>
> >>
> >> O Objetivo é a apresentação.
> >> Utilizo o Firebird 2.5, tentei com o Join, mas não consigo chegar 
> >> neste resultado.
> >>
> >> Se alguém puder auxiliar, agradeço...
> >>
> >>
> > ______________________________________________
> > 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
>
>
> ---
> Este email foi escaneado pelo Avast antivírus.
> http://www.avast.com
>
>
> ______________________________________________
> 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


---
Este email foi escaneado pelo Avast antivírus.
http://www.avast.com





Mais detalhes sobre a lista de discussão lista