[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
>>  >  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