webForumDet fria alternativet

Senaste skulden för resp lån

Databaser & SQL

4 svar · 445 visningar · startad av clarkbones

Medlem sedan feb. 20013 023 inlägg
Frågan#1

Hej!

Nu har jag glömt bort denna enkla SQL:

Jag har en tabell LoanDebt med fälten:
LoanID
DebtAmount
DebtDate

Nu vill jag för varje LoanID få ut den senaste DebtAmount. Olika lån kan olika senaste DebtDate.

Jag minns att jag måste joina tabellen med sig själv och använda MAX, men hur var det nu igen?

Edit: Använder SQL Server 2000

Medlem sedan juni 20014 421 inlägg
#2

Här har du en liknande fråga:

http://www.webforum.nu/showthread.php?t=155615

Medlem sedan feb. 20013 023 inlägg
#3

Mja, det kan nog lösa det, men borde inte en JOIN var snabbare än en subquery med IN?

Medlem sedan dec. 20025 483 inlägg
#4

Hur skulle du vilja skriva en sådan join?

Jag tror du oavsett måste ha med en subquery för att bestämma skuldstorleken för det senaste datumet på ett lån. Du kan skriva:

select loanid
     , debtamount
  from loandebt l
 where debtdate
     = ( select max(debtdate)
           from loandebt
          where loanid = l.loanid )
Medlem sedan feb. 20013 023 inlägg
#5

Peter S skrev:

Hur skulle du vilja skriva en sådan join?

Jag tror du oavsett måste ha med en subquery för att bestämma skuldstorleken för det senaste datumet på ett lån. Du kan skriva:

select loanid
     , debtamount
  from loandebt l
 where debtdate
     = ( select max(debtdate)
           from loandebt
          where loanid = l.loanid )

Nej, du har rätt. Det var jag som flummade till det. Tack!

255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)