03. september 2015 - 20:45 Der er 2 kommentarer og
1 løsning

Group By Max Date

Hvis jeg laver denne her, så får jeg fint returneret EN række med MAX tradedate...

SELECT CustomerId, MAX(TradeDate) FROM tbl_test_results WHERE IsActive = 1 GROUP BY CustomerId

Hvis jeg tilføjer kommentar, så får jeg mange datoer...
SELECT CustomerId, MAX(TradeDate), Comments FROM tblTrades WHERE IsCompleted = 1 GROUP BY CustomerId, Comments

Hvordan skal den SQL sætning se ud, for at jeg får alle tre kolonner vist men KUN den nyeste dato?
Avatar billede Slettet bruger
03. september 2015 - 22:00 #1
Det kan løses sådan:

SELECT * FROM (
SELECT CustomerId, TradeDate, Comments
,row_number() over(partition by CustomerId order by TradeDate desc) Nr
FROM tblTrades WHERE IsCompleted = 1
) s1
WHERE Nr = 1
03. september 2015 - 22:28 #2
Tak det ser ud til at virke...
Hvis jeg så efterfølgende kun vil se dem, som ikke har handlet de seneste 12 måneder... noget alla HAVING TradeDate <= '2014-09-01' kan det så nemt implementeres?
03. september 2015 - 22:31 #3
Sorry - den var for nem... skal jo blot tilføjes efter Nr = 1 :-) (måske der skal lukkes ned for i aften)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester