Max waarde uit meerdere velden

Status
Niet open voor verdere reacties.

Deef1290

Gebruiker
Lid geworden
18 aug 2009
Berichten
29
Bekijk bijlage db2.zipGraag wil ik per regel een max waarde hebben van enkele kolommen.
Als bijlage een voorbeeld:
Tabel waarin de resultaten staan van 3 personen en de cijfers van 3 toetsen die ze hebben gemaakt.
Nu wil ik graag via een query het hoogst behaalde cijfer per persoon hebben (max).

Ik heb al zitten proberen via functie max maar dit werkt niet over velden horizontaal.
Weet iemand een oplossing?
 
Als je je database goed had genormaliseerd dan had je dit probleem niet. Want wat gebeurt er als er een toets bijkomt?

Als je hier toch mee verder wilt dan kan je dat doen door gebruik te maken van een union query.
Code:
select naam, toets1, cijfer from ToetsResultaat
union
select naam, toets2, cijfer from ToetsResultaat
union
select naam, toets3, cijfer from ToetsResultaat
union
select naam, toets4, cijfer from ToetsResultaat
Het kan zijn dat jouw veldnamen anders zijn.
Als je deze query opslaat onder de naam qryToetsResultaat, dan kan je die als basis gebruiken voor jouw vraag.
Je krijgt dan:
Code:
select naam, max(cijfer) from qryToetsResultaat group by naam

Enjoy!
 
iK heb een voorbeeldje met een query gemaakt waarin m.b.v. een functie die op basis van je huidige structuur toch het hoogste cijfer berekent. In deze constructie kun je zelfs meer kolommen toevoegen zolang de cijferkolom maar met "Toets" begint...
Deze kan ik nu niet posten, maar dat zal ik vanavond doen...
 
Hoi Octafish,

Bedankt alvast voor je hulp. Kijk uit naar je voorbeeld!
 
Hier is-tie!
 

Bijlagen

Hoi Octafish,

Harstikke bedankt! Dit zal werken. Alleen heb je bij deze oplossing een vereiste dat de kolom namen allemaal moeten beginnen met "toets". Stel de kolommen zouden niet toets zijn maar bijvoorbeeld vakken Nederlands / Engels / Duits. Is ook daar een oplossing voor? Nieuwe tabel in de bijlage.
 

Bijlagen

Graag even een eigen topic aanmaken. Deze topic is van 2010, dus al heel lang niet actueel meer. Oude topics mogen met rust worden gelaten, daarbij is het niet toegestasan mee te liften in iemand zijn/haar topic.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan