Resultaat query met Max(date)
Nu wil ik een overzicht waarin de oudste spelers worden getoond en in welke wedstrijd zij speelde op die leeftijd.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$sql = "SELECT
date_format(max(w.datum),'%d-%m-%Y') as datum,
datediff(max(w.datum),s.geboren) as leeftijd,
w.wid,
w.thuis,
w.uit,
w.thg,
w.uitg,
s.voornaam,
s.tussenvoegsel,
s.achternaam,
s.persid,
,(date_format(s.geboren,'%d-%m-%Y')) as geboren,
o.wid,
o.persid
from opstelling o,wedstrijden w,spelers s
where w.wid=o.wid
and o.persid=s.persid
GROUP BY o.persid
order by leeftijd desc,achternaam asc limit 50;
date_format(max(w.datum),'%d-%m-%Y') as datum,
datediff(max(w.datum),s.geboren) as leeftijd,
w.wid,
w.thuis,
w.uit,
w.thg,
w.uitg,
s.voornaam,
s.tussenvoegsel,
s.achternaam,
s.persid,
,(date_format(s.geboren,'%d-%m-%Y')) as geboren,
o.wid,
o.persid
from opstelling o,wedstrijden w,spelers s
where w.wid=o.wid
and o.persid=s.persid
GROUP BY o.persid
order by leeftijd desc,achternaam asc limit 50;
Deze query geeft keurig van iedere speler de naam,geboortedatum van de speler, de leeftijd weer.
Maar geeft niet de wedstrijd weer waarin deze speler op die leeftijd actief was, maar de allereerste wedstrijd (moet de laatste zijn)
Waar zit de fout? Voeg ik bij Group by w.wid toe dan lukt het wel,
maar dan wordt er niet van iedere speler één wedstrijd getoond maar meerdere. vb. Speler A heeft in vier wedstrijden
gespeeld waarin hij 35 was. Speler B speelde zijn laatste toen hij 34 was. Ik wil speler A dus maar één keer zien.
Met de toevoeging van w.wid in de Group By wordt hij 4 keer getoond en dan pas speler B.
De voglende velden dienen in de GROUP BY te staan:
s.geboren
w.wid
w.thuis
w.uit
w.thg
w.uitg
s.voornaam
s.tussenvoegsel
s.achternaam
s.persid
o.wid,
o.persid
Je zult in mijn ogen de max in een subquerie moeten zetten in de from-clause
Alleen weet ik niet precies hoe ik nu verder moet. Suggestie van Noppes om de max in een sub-query te plaatsen kan best een goede wezen. Alleen zie ik even niet hoe deze in de praktijk te brengen. Sub-query's vind ik nog best een lastige materie.
Dus als iemand mij enigzins op weg kan helpen . . .
from tabelnaam
en
select ikbendesubquery.ik
, ikbendesubquery.ben
, ikbendesubquery.subquery
from (
select ik
, ben
, subquery
from tabel) ikbendesubquery
Mis ik soms iets aan je voorbeeld . . of .. zie ik het echt niet. Kun je me wellicht aan de hand van mijn vraag proberen e.e.a. duidelijker te maken?