[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