Dúvida Função MAX

Firebird

14/12/2006

Saudações!!!!

Tenho uma tela que mostra todas as contas a serem fechadas (da tabela CONTAS). Quando seleciono uma conta para fazer o fechamento, é exibida uma tela onde informa o último saldo do cliente, que será utilizado no pagamento da conta.

O select que utilizei foi:

select CD_CTA SALDO, DATA from SALDOS
where CD_CTA =
(select max(CD_CTA) from SALDOS
where CD_CLIE = :CODCLIE)

Com base neste select, seria possível mostrar o último saldo de cada cliente, sendo que no caso acima mostra apenas de um?

Grato,

Rogério


Roger1976

Roger1976

Curtidas 0

Respostas

Roger1976

Roger1976

14/12/2006

Desculpem-me, estou utilizando o delphi 2006 (sqldataset, datasetprovider, clientdataset) e firebird 1.5.


GOSTEI 0
Sremulador

Sremulador

14/12/2006

select CD_CTA SALDO, DATA, (select max(CD_CTA SALDO) from SALDOS 
where CD_CLIE = :CODCLIE) 
 from SALDOS 
where CD_CTA =:CONTA



acho que e isso...


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

14/12/2006

será que a sua instrução não está errada?
se CD_CTA é o saldo da conta - como eu presumo que seja - você está trazendo sempre o maior saldo, e não o último. para trazer o último saldo creio que você deva basear-se na data, e não no valor.

acho que esta instrução pode te ajudar:
select
  S1.CD_CLIE, max(S1.DATA) DATA,
  (select S2.CD_CTA
   from SALDOS S2
   where S2.CD_CLIE = S1.CD_CLIE
   and S2.DATA = max(S1.DATA)) SALDO
from
  SALDOS S1
group by
  CD_CLIE



GOSTEI 0
POSTAR