[firebase-br] Ajuda com Select

Ronaldo Souza ronaldsouza01 em gmail.com
Qui Maio 19 16:09:21 -03 2011


Como eu disse eu não testei o exemplo que te passei. Talvez você tenha que
usar um álias diferente para as tabelas em cada union. Mas você consegue !

Sucesso
Ronaldo Alves de Souza
AtonWare Ltda.

Em 19 de maio de 2011 16:06, Daniel Maranhão <
danielmachado em agetop.goias.gov.br> escreveu:

> pois é,
>
> eu pensei no UNION,  mas no UNION, eu consigo colocar 3 selects ? Eu só
> consegui 2.
>
> ----- Original Message ----- From: "Ronaldo Souza" <
> ronaldsouza01 em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Thursday, May 19, 2011 3:59 PM
>
> Subject: Re: [firebase-br] Ajuda com Select
>
>
> Você pode usar o UNION, eu acho. Mais ou menos assim:
>
> select saida.pessoa_id,
>      pessoa.nome,
>  (select sum(saida.qnt_atendida * estoque.ult_preco)
> from saida, estoque
> where saida.produto_id = estoque.produto_id
> and saida.data_saida between '01.03.2011' and '31.03.2011'
>  ) Valor
> from saida, estoque, pessoa
> where saida.produto_id = estoque.produto_id
> and saida.pessoa_id = pessoa.idpessoa
> and saida.data_saida between '01.03.2011' and '31.03.2011'
> UNION
> select saida.pessoa_id,
>      pessoa.nome,
>  (select sum(saida.qnt_atendida * estoque.ult_preco)
> from saida, estoque
> where saida.produto_id = estoque.produto_id
> and saida.data_saida between '01.04.2011' and '30.04.2011'
>  ) Valor
> from saida, estoque, pessoa
> where saida.produto_id = estoque.produto_id
> and saida.pessoa_id = pessoa.idpessoa
> and saida.data_saida between '01.04.2011' and '30.05.2011'
> UNION
> select saida.pessoa_id,
>      pessoa.nome,
>  (select sum(saida.qnt_atendida * estoque.ult_preco)
> from saida, estoque
> where saida.produto_id = estoque.produto_id
> and saida.data_saida between '01.05.2011' and '31.05.2011'
>  ) Valor
> from saida, estoque, pessoa
> where saida.produto_id = estoque.produto_id
> and saida.pessoa_id = pessoa.idpessoa
> and saida.data_saida between '01.05.2011' and '31.05.2011'
>
> Já vou avisando que eu nem testei aqui !!
>
> Sucesso
> Ronaldo Alves de Souza
> AtonWare Ltda.
>
>
>
>
> Em 19 de maio de 2011 15:55, Daniel Maranhão <
> danielmachado em agetop.goias.gov.br> escreveu:
>
>  Forrest e Ronaldo,
>>
>> Era exatamente isso, foi o desespero, desculpem e agradeço a ajuda.
>>
>> Agora aproveitando o embalo, esse select é para pegar o que foi gasto por
>> uma pessoa no periodo de 19.04 até 19.05
>>
>> Existe alguma maneira de eu repetir esse sql, mais 3 vezes, mudando apenas
>> o periodo, sem ser por Stored Procedure ?
>>
>> Por exemplo, quero o relatorio dos meses, de março, abril, maio ?
>>
>> Alguem me da uma sugestão ?
>>
>>
>> Atc,
>>
>> Daniel
>> ----- Original Message ----- From: "Forrest®" <fernando.bg em gmail.com>
>> To: <lista em firebase.com.br>
>> Sent: Thursday, May 19, 2011 3:48 PM
>> Subject: Re: [firebase-br] Ajuda com Select
>>
>>
>> Em 19/05/2011 15:32, Daniel Maranhão escreveu:
>>
>>  Senhores, Boa tarde !
>>>
>>> Ajuda rápida, devido ao desespero.
>>>
>>> Estou como seguinte select
>>>
>>> select saida.pessoa_id, pessoa.nome, sum(saida.qnt_atendida *
>>> estoque.ult_preco)
>>> from saida, estoque, pessoa
>>> where saida.produto_id = estoque.produto_id
>>> and saida.pessoa_id = pessoa.idpessoa
>>> and saida.data_saida between '19.04.2011' and '19.05.2011'
>>> group by saida.pessoa_id
>>>
>>>
>>> com o seguinte erro:
>>>
>>> Invalid token.
>>> Dynamic SQL Error.
>>> SQL error code = -104.
>>> Invalid expression in the select list (not contained in either an
>>> aggregate function or the GROUP BY clause).
>>>
>>> se eu tirar a tela pessoa, e o pessoa.nome, funciona, mas eu preciso do
>>> nome da pessoa.
>>>
>>> Alguem pode me ajudar ?
>>>
>>>
>>
>> O erro não é porque o campo " pessoa.nome " deve estar também no group
>> by???
>>
>> T++++++++++++
>>
>>
>>
>> ______________________________________________
>> 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
>>
>>  ______________________________________________
> 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
>



Mais detalhes sobre a lista de discussão lista