[firebase-br] duvida em SELECT!
paulosxs Yahoo!
paulosxs em yahoo.com.br
Sáb Maio 5 17:27:52 -03 2007
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?
Mais detalhes sobre a lista de discussão lista