[firebase-br] um SELECT...

paulosxs Yahoo! paulosxs em yahoo.com.br
Qui Jun 7 19:42:22 -03 2007


Alan Matos <alanladecasa em gmail.com> escreveu:

> Olá rubem...
>
> Rapaz, eu coloquei em negrito aki na lista só pra mostrar os registros que
> eu quero que o Select me retone...
>
> (...)
>
> eu quero aplicar o selec nessa tabela
>
> DATA       HISTÓRICO VALOR P  TIPO  SALDO A CLIENTE   RESTANTE
> ========== ========= ======= ====== ======= =======   ========
> 11.10.2006 RESTANTE  160,000 DÉBITO 180,470 00000004    20,470
> 12.10.2006 RESTANTE   95,000 DÉBITO 117,400 00000003    22,400
> 12.10.2006 RESTANTE  200,000 DÉBITO 294,330 00000005    94,330
> (...)
>
> e abaixo, está o resultado que eu espero do select: O último movimento de
> cada cliente.
> (representado em negrito, acima)
>
> DATA       HISTÓRICO VALOR P  TIPO  SALDO A CLIENTE   RESTANTE
> ========== ========= ======= ====== ======= =======   ========
> 13.10.2006 RESTANTE   40,000 DÉBITO  94,330 00000006    54,330
> 13.10.2006 RESTANTE    4,000 DÉBITO  54,330 00000004    50,330
> (...)

Alan, a estrutura da tabela não nos garante a sequência real dos 
registros. Uma coluna para hora ajudaria, mas também não garantiria. Eu 
usaria uma coluna "Id" autoincrementável. Mas, se considerarmos, com a 
estrutura em uso, que os registros estão na ordem natural de eventos eu 
usaria uma SP com um [for...select..] onde verificaria se, para cada 
registro de um cliente, há um registro posterior, caso em que NÃO seria 
executado o suspend.
Não imagino um meio mais garantido do que essa checagem (considerando a 
estrutura em uso). Nem mesmo o uso do Max() com group by pode garantir.






Mais detalhes sobre a lista de discussão lista