Avatar billede zalam Nybegynder
13. januar 2009 - 23:56 Der er 4 kommentarer og
1 løsning

Problemer med utræk fra tabel.

BEMÆRK!

Dette er en fiktiv opgave data er derfor ikke fortroelige!

Jeg sidder med en øvelsesopgave i access som jeg har store problemer med.

Jeg skal lave en resultatliste for NFC north-konferencen i 2004.

I resultatlisten skal hjemmeholdetsnavn, deres score (Hscore), udeholdets navn, deres score (Uscore), om hjemmeholdet vandt (HVinder) samt om udeholdet vandt (Uvinder) medtages.

Det er access 2007..

Jeg har vedhæftet min database (NFL.RAR)

http://uploading.com/files/YBQDD9WM/NFL.rar.html

med så langt jeg er nået. Som I kan se kan jeg godt få den til at vise det meste, men når jeg skal vise ude holdetsnavn går det galt.
Avatar billede terry Ekspert
14. januar 2009 - 20:50 #1
I'm not at all sure I understand your tables/relationships.
If I look in table Klub only 4 klubID (5,10,11,17) where at konferance 5 (NFC north-konferencen). So I would also expect only to see the same klubID in Resultat.UklubID, but I dont, why not?

And why can a klub only be at one konferance? And if they can be at nor ethan one conferanc ethen should you have a many to many relationship (Klub >klubKonferance< Konferance)?
Anyway thats getting away from you rquestion.

IF UklubID is the ude holds ID and assuming that the HkubID was at konferance 5, which in turn would mean that UklubID was also there then the following should give you what you want.

SELECT Klub.Klubnavn, Resultat.HScore, Resultat.UScore, Resultat.HVinder, Resultat.UVinder, Resultat.UKlubID, Klub_1.Klubnavn
FROM Klub AS Klub_1 INNER JOIN (Klub INNER JOIN (Resultat INNER JOIN Aar ON Resultat.AarID = Aar.AarID) ON Klub.KlubID = Resultat.HKlubID) ON Klub_1.KlubID = Resultat.UKlubID
WHERE (((Aar.Aar)=2004) AND ((Resultat.TypeID)=1) AND ((Klub.KonferenceID)=5));
Avatar billede zalam Nybegynder
14. januar 2009 - 21:16 #2
Jeg har ikke lavet databasen selv, det er fra en øveles opgave og kender derfor ikke videre til HVORFOR det præcis er sådan.

Den forespørgslen du har alvet virker perfekt. - Nøjagtigt hvad jeg ønskede.

Men er det eneste du har gjort at lave en "ekstra tabel" af klub, som du så laver en join forbindelse med i mellem til klub, som kører videre til Uklub? - Altså en en til mange relation??

Eller vil du forklare det lidt nærmere? - Resultatet er helt perfekt, men jeg vil gerne forstå det sådan nogenlunde.
Avatar billede terry Ekspert
15. januar 2009 - 09:04 #3
First of all I have removed the Konferance table. This isnt necessary when you know that Klub.KonferenceID = 5 is what your after.
Next I've added the klub table again. This isnt a copy (data and all) of klub table its the same table but it gets an alias name (klub_1). So its exactly the same as what you do to get Klubnavn for Hklub.

og tak for points
Avatar billede hb5v6 Nybegynder
15. januar 2009 - 17:55 #4
Hvordan opretter du et alias ?... altså hvordan laver man bare lige klub_1 ?
i designvisning.. og kan du forklare hvordan man skriver det i SQL ?
Avatar billede terry Ekspert
15. januar 2009 - 18:29 #5
SELECT * FROM Table1 AS T1

T1 is an alias for table1

If you add the same table more than once in a query then Access normally just addeds
_1, _2 and so on. BUt you can go directly into SQL mode and alter it to what yu want as in the example above. It also applies for fields.
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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