[firebase-br] Ajuda com Select

Ronaldo Souza ronaldsouza01 em gmail.com
Qui Maio 19 15:59:06 -03 2011


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
>



Mais detalhes sobre a lista de discussão lista