Avatar billede lyngedrengen Nybegynder
07. juli 2002 - 20:02 Der er 14 kommentarer og
1 løsning

2 gange joins?

Hejsa!

Jeg har et problem, som jeg meget gerne vil have hjælp til.

Det drejer sig om følgende:

Jeg laver en fodboldside og har følgende sql til at udvælge de spillere, der har fået gult kort og så sammentælle dem for den enkelte spiller:

sqla = "SELECT DISTINCTROW spillere.id, spillere.navn, Sum(kort.gul) AS [sumgulkort] FROM spillere INNER JOIN kort ON spillere.Id = kort.Spillerid GROUP BY spillere.navn, kort.Spillerid, spillere.Id ORDER BY Sum(kort.gul) DESC"

Nu vil jeg imidlertid gerne sikre mig, at der kun bliver talt på kampe i indeværende sæson og jeg skal derfor have joinet over til endnu en tabel. Alt i alt involverer det altså 3 tabeller. Tabellerne ser således ud:

Tabellen kort:
kortid, kampid, minut, gul, spillerid

Tabellen spillere:
id, navn, placering, hold

Tabellen kampinfo:
id, dato, vs, saeson

Hvor det jo er kolonnen saeson jeg skal have fat i. Sammentællingen skal nemlig kun foregå for de kampe, hvor saeson=80

En noget kort forklaring - spørg endelig, hvis der er uklarheder - på forhånd tak for hjælpen!!

Mvh
Jan
Avatar billede terry Ekspert
07. juli 2002 - 20:20 #1
you can send the dB to terry@santhell.dk and I will take a look for you
Avatar billede terry Ekspert
07. juli 2002 - 20:22 #2
Do you have Access? If so just add the third table in the query designer. If You have your relationships in order then Access should make the join to kaminfo. Then just write 80 in the criteria field!
Avatar billede lyngedrengen Nybegynder
07. juli 2002 - 20:23 #3
Thanks Terry - I'll do that!
Avatar billede lyngedrengen Nybegynder
07. juli 2002 - 20:31 #4
Ooops, I didn't see your second answer - I will try that, but I'm afraid I already sent you the DB, sorry!
Avatar billede terry Ekspert
07. juli 2002 - 20:32 #5
lyngedrengen>Have you sent the dB to me or are you trying to make the third join yourself?
Avatar billede lyngedrengen Nybegynder
07. juli 2002 - 20:34 #6
I sent the DB ;-) I'm not sure how to add the third table to the query...:-S
Avatar billede terry Ekspert
07. juli 2002 - 20:37 #7
OK, I just havent received it yet!
Avatar billede terry Ekspert
07. juli 2002 - 20:37 #8
Now I have :o)
Avatar billede lyngedrengen Nybegynder
07. juli 2002 - 20:38 #9
yep, big DB (hope you're not using a 56 k ;-))
Avatar billede terry Ekspert
07. juli 2002 - 20:42 #10
No, I have StofaNet but my mail is in the USA! (BuyDomains.dk)
Avatar billede lyngedrengen Nybegynder
07. juli 2002 - 20:50 #11
Okay - no problem then...
Avatar billede terry Ekspert
07. juli 2002 - 21:19 #12
solution so far!

SELECT DISTINCTROW spillere.navn, Sum(maal.hfkmaal) AS [Sum Of hfkmaal], kampinfo.saeson
FROM spillere INNER JOIN (kampinfo INNER JOIN maal ON kampinfo.Id = maal.Kampid) ON spillere.Id = maal.Spillerid
GROUP BY spillere.navn, kampinfo.saeson, maal.Spillerid, spillere.Id
HAVING (((kampinfo.saeson)=80))
ORDER BY Sum(maal.hfkmaal) DESC;
OR
SELECT DISTINCTROW spillere.navn, Sum(maal.hfkmaal) AS [Sum Of hfkmaal]
FROM spillere INNER JOIN (kampinfo INNER JOIN maal ON kampinfo.Id = maal.Kampid) ON spillere.Id = maal.Spillerid
WHERE (((kampinfo.saeson)=80))
GROUP BY spillere.navn, maal.Spillerid, spillere.Id
ORDER BY Sum(maal.hfkmaal) DESC;

They both should give you waht you want!
Avatar billede terry Ekspert
07. juli 2002 - 21:37 #13
lyngedrengen>have you received what I sent?
Avatar billede lyngedrengen Nybegynder
07. juli 2002 - 22:44 #14
Perfect! :-D
Avatar billede terry Ekspert
08. juli 2002 - 07:53 #15
thanks :o)
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