[firebase-br] RES: RES: Dúvida INNER JOIN
Andrei Luís
compuvale.software em gmail.com
Ter Mar 11 16:09:54 -03 2008
Aí não vai funcionar, para fazer o agrupamento somente pelo campo
vendas.caixa você vai precisar tirar o campo caixa.campo1 do select
[]
Andrei
Em 09/03/08, Microtecs Informática Ltda<microtecs em terra.com.br> escreveu:
> Olá Andrei,
>
> Eu entendi o código, mas quando você escreve: group by v.caixa,
> c.campo1; o agrupamento será feito pelo campo caixa da tabela vendas e
> pelo campo campo1 da tabela caixa, correto?? Para o caso o agrupamento
> deve ser feito somente pelo campo caixa da tabela vendas.
>
> Ou será que estou equivocado??
>
> Abraços...
>
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
> Em nome de Andrei Luís
>
> Enviada em: terça-feira, 11 de março de 2008 15:31
> Para: FireBase
> Assunto: Re: [firebase-br] RES: Dúvida INNER JOIN
>
>
> Desculpe, só agora percebi que coloquei o c.campo1 depois do from, aí
> não rola mesmo.
>
> Entenda que no SQL que te passei, V é o alias da tabela vendas e C é
> o alias da tabela caixa. Veja o SQL escrito usando alias e não usando
> alias:
>
> Usando alias (o mesmo que te passei antes):
>
> select v.caixa,
> sum(v.valor_suite) as vsuite,
> sum(v.consumo) as vcons,
> sum(v.descreal) as vdesctsuite,
> sum(v.desccons) as vdesctcons,
> sum(v.valor_suite+v.consumo) as vtotal,
> count(*) as qtsaidas,
> sum(v.qtpessoas) as qtpessoas,
> c.campo1
> from vendas v
> inner join caixa c on v.caixa=c.ncaixa
> where v.caixa Between :nCaixaIni and nCaixaFn and v.situacao='PAGO'
> group by v.caixa, c.campo1;
>
> Sem usar alias (o mesmo que te passei antes):
>
> select vendas.caixa,
> sum(vendas.valor_suite) as vsuite,
> sum(vendas.consumo) as vcons,
> sum(vendas.descreal) as vdesctsuite,
> sum(vendas.desccons) as vdesctcons,
> sum(vendas.valor_suite+v.consumo) as vtotal,
> count(*) as qtsaidas,
> sum(vendas.qtpessoas) as qtpessoas,
> caixa.campo1
> from vendas
> inner join caixa on vendas.caixa=caixas.ncaixa
> where vendas.caixa Between :nCaixaIni and nCaixaFn and
> vendas.situacao='PAGO'
> group by vendas.caixa, caixa.campo1;
>
> Sugiro que baixe e estude alguma apostila de SQL, ou melhor ainda,
> compre o livro Firebird 2 - O banco de dados do novo milênio, editora
> Ciência Moderna, tem na loja on-line da firebase, esse livro tem um
> capítulo a parte que trata de Select e suas principais cláusulas.
>
> []
> Andrei
>
>
>
>
> Em 11/03/08, Microtecs Informática Ltda<microtecs em terra.com.br>
> escreveu:
> > Boa tarde pessoal,
> >
> > André, eu entendi o código mas não sei onde colocar essa linha
> > SQL que você disse. Devo colocar abaixo do GROUP BY?? Se possível
> > reescreva o meu código inserindo a linha " Select caixa.campo1,
> > caixa.campo2.....".
> >
> > Abraços...
> >
> >
> >
> > select v.caixa,
> > sum(v.valor_suite) as vsuite,
> > sum(v.consumo) as vcons,
> > sum(v.descreal) as vdesctsuite,
> > sum(v.desccons) as vdesctcons,
> > sum(v.valor_suite+v.consumo) as vtotal,
> > count(*) as qtsaidas,
> > sum(v.qtpessoas) as qtpessoas from vendas v,
> > c.campo1
> >
> > inner join caixa c on v.caixa=c.ncaixa
> >
> > where v.caixa Between :nCaixaIni and nCaixaFn and v.situacao='PAGO'
> > group by v.caixa;
> >
> >
> >
> >
> >
> > -----Mensagem original-----
> > De: lista-bounces em firebase.com.br
> [mailto:lista-bounces em firebase.com.br]
> > Em nome de Andrei Luís
> > Enviada em: terça-feira, 4 de março de 2008 18:25
> > Para: FireBase
> > Assunto: Re: [firebase-br] Dúvida INNER JOIN
> >
> >
> > Especificando a tabela, da mesma forma que você fez no join:
> >
> > Select caixa.campo1, caixa.campo2.....
> >
> > Sugestão, qdo fizer join, use alias para as tabelas, veja como
> ficaria
> > seu select já com 'campo1' da tabela caixa:
> >
> > select v.caixa,
> > sum(v.valor_suite) as vsuite,
> > sum(v.consumo) as vcons,
> > sum(v.descreal) as vdesctsuite,
> > sum(v.desccons) as vdesctcons,
> > sum(v.valor_suite+v.consumo) as vtotal,
> > count(*) as qtsaidas,
> > sum(v.qtpessoas) as qtpessoas from vendas v,
> > c.campo1
> >
> > inner join caixa c on v.caixa=c.ncaixa
> >
> > where v.caixa Between :nCaixaIni and nCaixaFn and v.situacao='PAGO'
> > group by v.caixa;
> >
> > []
> > Andrei
> >
> >
> > 2008/3/4, Microtecs Informática Ltda <microtecs em terra.com.br>:
> > > Boa tarde colegas,
> > >
> > > Tem como fazer um INNER JOIN e selecionar alguns atributos
> da
> > 2ª
> > > tabela? Exemplo:
> > >
> > > select caixa,
> > > sum(valor_suite) as vsuite,
> > > sum(consumo) as vcons,
> > > sum(descreal) as vdesctsuite,
> > > sum(desccons) as vdesctcons,
> > > sum(valor_suite+consumo) as vtotal,
> > > count(*) as qtsaidas,
> > > sum(qtpessoas) as qtpessoas from vendas
> > >
> > > inner join caixa on vendas.caixa=caixa.ncaixa
> > >
> > > where caixa Between :nCaixaIni and nCaixaFn and situacao='PAGO'
> > > group by caixa;
> > >
> > > Preciso selecionar alguns atributos da tabela CAIXA. Como eu faço
> > isso?
> > >
> > > Abraços...
Mais detalhes sobre a lista de discussão lista