Avatar billede bha140795 Nybegynder
15. maj 2007 - 15:51 Der er 4 kommentarer

Hjælp til SELECT sætning

Findes der en måde der kan løse følgende:

Cpr          Dato              Kode
xxxx          01-05-2007        1
xxxx          01-05-2007        8
xxxx          01-02-2006        1
xxxx          01-01-2006        8
yyyy          01-03-2007        1
yyyy          01-03-2007        8
zzzz          01-05-2007        8
zzzz          01-03-2007        1

Listen skal indeholde CPR nyeste DATO og kun den laveste KODE, eksempelvis skal ovennævnte resultere i følgende liste:

Cpr          Dato              Kode
xxxx          01-05-2007        1
yyyy          01-03-2007        1
zzzz          01-05-2007        8
Avatar billede hmortensen Nybegynder
15. maj 2007 - 16:03 #1
Måske sådan her:
SELECT cpr, dato, kode FROM tbl GROUP BY cpr ORDER BY dato DESC, kode

Hvad er vigtigst, laveste kode, eller nyeste dato?
Avatar billede kjulius Novice
15. maj 2007 - 21:03 #2
Måske sådan her?

SELECT Cpr, MAX(Dato) AS NyesteDato, MIN(Kode) AS LavesteKode
FROM dinTabel
GROUP BY Cpr

Alternativt, hvis den laveste kode kun skal gælde for de rækker med den nyeste dato:

SELECT Cpr, NyesteDato, MIN(Kode) AS LavesteKode
FROM (
  SELECT Cpr, Kode, MAX(Dato) AS NyesteDato
  FROM dinTabel
  GROUP BY Cpr, Kode) AS TempTabel
GROUP BY Cpr, NyesteDato
Avatar billede klax Nybegynder
17. maj 2007 - 23:21 #3
select cpr, max(dato), min(kode)
from x
group by cpr
having dato=max(dato) and kode=min(kode)
Avatar billede kjulius Novice
02. august 2007 - 17:53 #4
Tilbagemelding ønskes... :-)
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