Avatar billede dotdonk Nybegynder
31. oktober 2006 - 08:39 Der er 6 kommentarer og
1 løsning

SELECT COUNT bruger relationer

Hej

Er der en her inde som kan hjælpe mig at modificere denne her SQL sætning, som tæller 3. niveau bruger relationer til at tælle 2. niveau bruger relationer:

---------------------------------------------------

3. niveau

select count(*)
From Tabel t1
left join Tabel t2 on t1.BrugerID2 = t2.BrugerID1
left join Tabel t3 on t2.BrugerID2 = t3.BrugerID1
where t1.BrugerID1 = 1
and t2.BrugerID2 <> t1.BrugerID1
and t3.BrugerID2 <> t1.BrugerID1
and t3.BrugerID2 <> t2.BrugerID1

---------------------------------------------------

2. niveau ?

---------------------------------------------------

Mvh

DD.
Avatar billede janus_007 Nybegynder
01. november 2006 - 19:18 #1
Hej..

Jeg ville faktisk gerne hjælpe dig, men kan ikke helt forstå dit spørgsmål. Hvad refererer et niveau til?

Jeg har også set du tidligere har spurgt til noget med de her brugere osv., men uden at vide noget om dit design, synes jeg at kunne se muligheden for et bedre design når du skal lave sådan nogle forespørgsler så ofte som du åbenbart har behov for. Du kunne måske fortælle lidt mere om hvad du laver? Måske der skal friske øjne på designet, noglegange har man en tendens til at snørkle sig selv lidt ind i relationer mm.
Avatar billede lorentsnv Nybegynder
02. november 2006 - 11:27 #2
Ud fra din opstilling i sprøgsmål hvor du ville have 3. niveau, mener jeg følgende SQL giver dig svar:

select count(*)
From dbo.BrugerRelation t1
left join BrugerRelation t2 on t1.BrugerID2 = t2.BrugerID1
where t1.BrugerID1 = 1
and t2.BrugerID2 <> t1.BrugerID1

Den siger at hans har 2 bekendte på 2. niveau, igennem Børge.
(Se: http://www.eksperten.dk/spm/739704)

Hvis du laver en select * i stedet for select count(*), vil du kunne se at Hans kender Bente og Pernille på 2. niveau.
Avatar billede lorentsnv Nybegynder
07. november 2006 - 14:49 #3
Har du haft lejlighed til at teste ovenstående?
Avatar billede dotdonk Nybegynder
12. november 2006 - 19:09 #4
hej lorentsnv og janus 007

jeg får kigget på det i løbet af ugen og vender tilbage der.
Avatar billede dotdonk Nybegynder
27. november 2006 - 15:23 #5
Hej lorentsnv

jeg har først nu fået testet dit eksempel og denne her virker, som den skal:

select count(*)
From dbo.BrugerRelation t1
left join BrugerRelation t2 on t1.BrugerID2 = t2.BrugerID1
where t1.BrugerID1 = 1
and t2.BrugerID2 <> t1.BrugerID1

Så 2* thumbs up og tak for hjælpen.

Og thanks for your contribution janus_007

Hvis du smider et svar lorentsnv, så smider jeg point til dig.

Greetings,

DD.
Avatar billede lorentsnv Nybegynder
30. august 2007 - 09:44 #6
Jeg har visst glemt at smide svar på denne :-)
Avatar billede dotdonk Nybegynder
30. august 2007 - 11:27 #7
Here you go!
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