Avatar billede iziqio Nybegynder
20. juni 2008 - 23:01 Der er 1 kommentar

Sub select eller?

Hey

I en tabel har jeg en masse rækker.
De har id, navn, kode (1 til 5) og dato.

Nu vil jeg gerne have alle id og navne som har koden mindre end 5, men kun de nyeste og der må ikke være et navn som har en kode 5 efter de har fået koden 1-4 (altså afhængigt af datoen) og navnet behøver kun at optræde en gang.

Håber en eller anden kan hjælpe.
Avatar billede janus_007 Nybegynder
21. juni 2008 - 09:42 #1
Denne her må give alle de navne som har en kode 5 og som har haft en kode 1,2,3 eller 4

select navn from MyTable m
inner join MyTable m1
on m1.navn = m.navn
where m.kode = 5 and m1.kode in(1,2,3,4)

Denne vil jeg smide ind her:


select id, navn, kode, dato from MyTable
where navn not in(
select navn from MyTable m
inner join MyTable m1
on m1.navn = m.navn
where m.kode = 5 and m1.kode in(1,2,3,4)
)
order by dato desc

Nu ved jeg ikke lige hvordan "de nyeste" er tiltænkt, men ovenstående giver dig de nyeste først :)
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