Hoe kan ik het aantal kolommen bepalen welke een minimale waarde bevatten
Ik gebruik onderstaande Query om een stand weer te geven, maar moet nu nog zelf het aantal toernooien (gesp) invoeren, dat kan toch zeker ook anders?
SELECT voornaam, tussenvoegsel, achternaam, geslacht, gesp, toern1, toern2, toern3, toern4, toern5, toern6, toern7, toern8, toern9, toern10, toern11, toern12, toern13, toern14, toern15, rankingnaam, rankingstand.seizoen, sum(toern1 + toern2 + toern3 + toern4 + toern5 + toern6 + toern7 + toern8 + toern9 + toern10 + toern11 + toern12 + toern13 + toern14 + toern15) as totaal FROM spelers, rankingstand WHERE rankingstand.speler_id = spelers.speler_id AND rankingnaam = 'xxx' AND rankingstand.seizoen = 'xxx' AND stand_id GROUP BY stand_id ORDER BY totaal DESC, spelers.achternaam ASC
Dus terug naar de tekentafel en lees de hoofdstukken over databasenormalisatie eens door.
Ik ben het met Aar eens. voornaam e.d. zijn persoonsgegevens. Toernooien zijn iets heel anders. Je zult dan al minimaal twee tabellen krijgen waarbij in de tabel Toernooien dan voor de personen hun id opgeslagen wordt in een kolom 'spelers' en ieder toernooi een nummer krijgt (id) zodat je niet meer met toern1-15 kolommen aan de gang hoeft.
SELECT spelers.voornaam, spelers.tussenvoegsel, spelers.achternaam, rankingstand.speler_id, aantal, SUM(aantal) as score FROM rankingstand, spelers WHERE rankingstand.speler_id=spelers.speler_id AND rankingnaam = 'xxx' GROUP BY rankingstand.speler_id ORDER BY score DESC
En dan bepalen in hoeveel rijen iemand een bepaalde score heeft behaald.
En dan bij de weergave ervoor zorgen dat elk toernooi wel in de juiste kolom komt te staan, want het moet natuurlijk wel netjes in een tabel komen.
En group by op aantal, terwijl je gelijktijdig ook SUM over aantal wilt weten? Dat gaat niet lukken.
zie ook http://wiki.pfz.nl/groupby