Avatar billede thanse21 Nybegynder
12. oktober 2006 - 09:17 Der er 4 kommentarer og
1 løsning

Rekursion i MSSQL 2000

Hej Eksperter,
Jeg skal høre jer om man kan lave rekursion i en MSSQL 2000 database.
Jeg har en tabel afdeling, der har id, navn og afdelingsid.

id er et autonummereringsfelt, navn er navnet på afdelingen, og afdelingsid er id'et på den overliggende afdeling.

Jeg ville gerne have noget sql der kunne SELECT'e en afdeling og alle underafdelinger ud fra et givet id.

Kan det lade sig gøre? Hvis ja, hvordan?

På forhånd tak
Avatar billede coderdk Praktikant
12. oktober 2006 - 09:56 #1
I Oracle har man CONNECT BY PRIOR, dette findes desværre ikke i SQL Server, men du kan håndkode det. Denne gør det i ét niveau:

SELECT a.id, a.navn, a.afdelingsid, b.id AS underid, b.navn AS undernavn FROM afdeling AS a INNER JOIN afdeling AS b ON a.afdelingsid = b.id
Avatar billede thanse21 Nybegynder
12. oktober 2006 - 10:01 #2
hmmm...det vil sige at det ikke virker med et vilkårligt antal nivieauer?
Eller: man skal vide hvor dybt man skal gå inden man går igang? Eller kan man lave et check?
Avatar billede coderdk Praktikant
12. oktober 2006 - 10:07 #3
Det letteste ville være at lave det programmatisk i ASP eller hvilket sprog du bruger, altså en almindelig rekursiv funktion...

Alternativt kan du lave en stored procedure der arbejder med en temp-tabel...
Avatar billede teepee Nybegynder
12. oktober 2006 - 14:49 #4
Avatar billede thanse21 Nybegynder
05. juli 2012 - 09:19 #5
lukker
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