Avatar billede konrad_ix Nybegynder
17. oktober 2005 - 21:48 Der er 4 kommentarer og
1 løsning

Et lidt kyptisk spørgsmål

Hej alle,

Da jeg ikke er synderlig teknisk, bliver jeg desværre nødt til at beskrive mit problem på en meget uteknisk måde.

Det drejer sig om et SELECT statement (mener jeg)

Jeg arbejder i en enkelt.

Tabellen indeholder informationer og deres evner.

Person A kan: Se & høre
Person B kan: Se

Tabellen er sat sådan op, at for hver evne en person har, er der en række i tabellen.

Person    Evne
--------------
  A        Se
  A      Høre
  B        Se

Det jeg ønsker, er et statement der finder alle de personer der både kan se og høre. (ie. jeg ønsker et A retur).

Jeg har selv rodet med det, men kan ikke helt finde ud af hvordan det skal gøres. Så vidt jeg regne mig frem til bliver det noget med at hele databasen skal løbes igennem. Række for række. Og undervejs bruge en variabel af en slags (for at holde styr på den ene af de to kriterier.)

Jeg vil værdsætte meget, hvis der er nogen der er i stand til at give en hånd med.

Med venlig hilsen.

Birger Wilhelmsen
Avatar billede arne_v Ekspert
17. oktober 2005 - 21:50 #1
self join:

SELECT t1.person
FROM dittabelnavn t1, dittabelnavn t2
WHERE t1.person=t2.person AND t1.evne='Se' AND t2.evne='Høre'
Avatar billede konrad_ix Nybegynder
18. oktober 2005 - 09:45 #2
Den laver en inner join, der desværre ikke returnerer de værdier jeg søger.

Dette er koden SQL selv laver (MS SQL 2000, SP3a)

SELECT    t1.person
FROM        tabelnavn e1 INNER JOIN
                      tabelnavn t2 ON t1.person = t2.person
WHERE    (t2.evne = 'Se') AND (t2.evne = 'Høre')
Avatar billede arne_v Ekspert
18. oktober 2005 - 10:20 #3
min SQL er god nok

din SQL duer ikke fordi den tester to gange på t2.evne og ikke en gang på t1.evne og en gang på t2.evne
Avatar billede konrad_ix Nybegynder
18. oktober 2005 - 10:41 #4
Selvfølgelig er din SQL god nok.

Og det var jo rigtig nok mig, der havde lavet en fejl.

Mange tak for hjælpen.

Hvis du smider et svar, vil du selvfølgelig kunne indkassere dine velfortjente point.
Avatar billede arne_v Ekspert
18. oktober 2005 - 10:42 #5
svar
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