[firebase-br] duvida em SELECT!
omar l m rosa
omar em conesul.inf.br
Sáb Maio 5 21:03:16 -03 2007
tenta
select * from tabela
where mov in (select max(mov) from tabela group by cliente)
Bai!
omar
----- Original Message -----
From: "paulosxs Yahoo!" <paulosxs em yahoo.com.br>
To: <lista em firebase.com.br>
Sent: Saturday, May 05, 2007 5:27 PM
Subject: Re: [firebase-br] duvida em SELECT!
Alan Matos <alanladecasa em gmail.com> escreveu:
> Olá pessoal, to apanhando aki, então resolvi perguntar na lista pra ve
> se alguem pode tentar me ajudar tenho uma tabela com os seguites
> registros
>
> MOV CLIENTE DATA VALOR TIPO
> 00001 0000010 12/04/2007 120,00 C
> 00002 0000150 12/04/2007 20,00 C
> 00003 0000010 12/04/2007 100,00 C
> 00004 0000011 12/04/2007 120,00 C
> 00005 0000010 12/04/2007 120,00 C
> 00006 0000011 12/04/2007 120,00 C
> 00007 0000150 12/04/2007 120,00 C
>
> O que eu estou precisando é de um SELECT que me retorne o último
> movimento e cada cliente.
Bem, Alan... Primeiro temos que considerar que com, essa estrutura, é
matematicamente impossível determinar o último MOV. O que o sistema pode
fazer é "dar um chute". Para isso tenho duas sugestões:
1. Crie um campo para registrar a hora dentro de uma exatidão
suficiente... em hh:mm, por exemplo. A query seria:
select
C.CLIENTE,
(select first 1 M.VALOR
from Movimentos M
where M.CLIENTE=C.CLIENTE
order by M.DATA desc, M.HORA desc) "ULT.VALOR"
from Clientes
2. Caso o campo para HORA não lhe seja conveniente, use o MOV:
select
C.CLIENTE,
(select first 1 M.VALOR
from Movimentos M
where M.CLIENTE=C.CLIENTE
order by M.DATA desc, M.MOV desc) "ULT.VALOR"
from Clientes
P.S. Para que você precisa do último valor?
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista