[firebase-br] RES: Dúvida INNER JOIN
Andrei Luís
compuvale.software em gmail.com
Ter Mar 11 15:30:50 -03 2008
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