[Access] Kringverwijzing > hoe op te lossen

Pagina: 1
Acties:
  • 353 views sinds 30-01-2008
  • Reageer

  • sigma01
  • Registratie: Augustus 2001
  • Laatst online: 09-04 11:55
Ik ben op dit moment bezig met een database waarin je een voetbalcompetie kunt bijhouden. Nu wil ik graag een overzicht maken van de stand en loop ik vast op de query om de punten op te tellen.
Deze query wordt in twee stappen uitgevoerd:
1 ) Bepalen of een wedstrijd gewonnen of verloren is.
2 ) Optellen van de punten.


De eerste query die ik gebruik is deze, maar als ik deze probeer uit te voeren krijg ik een kringverwijzing error. Weet iemand wat hier fout gaat?

De sql code is:
SELECT wedstrijd.spelrondenr, clubs.naam, wedstrijd.thuispunten, clubs_1.naam, wedstrijd.uitpunten, IIf([wedstrijd.thuispunten]>[wedstrijd.uitpunten],[punten+3],IIf([wedstrijd.Thuispunten]=[wedstrijd.uitpunten],[punten]+1,[punten]+0)) AS Punten
FROM clubs AS clubs_1 INNER JOIN (clubs INNER JOIN wedstrijd ON (clubs.club_nr = wedstrijd.[club thuis]) AND (clubs.club_nr = wedstrijd.[club uit])) ON clubs_1.punten = wedstrijd.[club uit]
WHERE (((wedstrijd.spelrondenr)=[Welke spelronde]))
ORDER BY IIf([wedstrijd.thuispunten]>[wedstrijd.uitpunten],[punten+3],IIf([wedstrijd.Thuispunten]=[wedstrijd.uitpunten],[punten]+1,[punten]+0)) DESC;

P3 667 Mhz, 384MB ram, 20GB maxtor+60GB IBM (60GXP), Matrox G400 dh, asus mobo, Philips 109b10 + Philips 17B


Verwijderd

Ik weet zo snel geen antwoord, maar ik heb even je query leesbaarder gemaakt, want dat was me een brei tekst...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SELECT wedstrijd.spelrondenr
,      clubs.naam
,      wedstrijd.thuispunten
,      clubs_1.naam
,      wedstrijd.uitpunten
,      IIf( [wedstrijd.thuispunten]>[wedstrijd.uitpunten]
          , [punten+3]
          , IIf( [wedstrijd.Thuispunten]=[wedstrijd.uitpunten]
               , [punten]+1
               , [punten]+0 ) ) AS Punten
FROM   clubs AS clubs_1
       INNER JOIN ( clubs
                    INNER JOIN wedstrijd
                    ON  ( clubs.club_nr = wedstrijd.[club thuis] )
                    AND ( clubs.club_nr = wedstrijd.[club uit] ) )
       ON clubs_1.punten = wedstrijd.[club uit]
WHERE  ( ( wedstrijd.spelrondenr=[Welke spelronde] ) )
ORDER BY IIf( [wedstrijd.thuispunten]>[wedstrijd.uitpunten]
            , [punten+3]
            , IIf( [wedstrijd.Thuispunten]=[wedstrijd.uitpunten]
                 , [punten]+1
                 , [punten]+0 ) ) DESC;

Verwijderd

volgens mij wil je twee dingen tegelijk doen.
dit query moet de punten per club per wedstrijd opleveren,
daarna zou ik eventueel een tweede query doen die een group by doet om het totaal aantal punten op te tellen.

iig. in dit geval die [punten] + 3/1/0 vervangen door gewoon 3/1/0 zodat je gewoon het aantal punten krijgt dat die club in die wedstrijd gekregen hebt.
daarna dus die aggregate doen