Hallo,

Ik ben bezig met het schrijven van een SQL query, waarin een join en een max functie zit.
De join wordt wel uitgevoerd maar de max functie niet.

Mijn vraag is: Hoe kan ik de max functie wel uitvoeren zodat ik 1 record terug krijg?


SELECT  a.Omschrijving,  p.Prijs, MAX( a.Alcohol) as MaxAlcohol
from Artikelen a, Prijslijst p
WHERE a.ArtikelCode = p.ArtikelCode
GROUP BY a.Omschrijving,  p.Prijs;



alvast bedankt
Hoe kun je groeperen op een omschrijving? :/

Ik zou eerder verwachten dat je groepeert op een type of soort, en wellicht in een prijsklasse (een interval, maar niet op een specifieke prijs).
haal voor elke combinatie van omschrijving en prijs de max-alcohol erbij.

Dus als je hebt

bier 4.95 3
bier 4.95 3.5
wijn 5.95 5
wijn 6.95 5

dan krijg je als resultaat
bier 4.95 3.5
wijn 5.95 5
wijn 6.95 5

dus alleen als omschrijving en prijs vaker dan 1x voorkomen, zie je een effect van de functie MAX.
zou je een voorbeeld kunnen geven van de sql query?
je query is op zich goed, maar doet waarschijnlijk wat anders dan jij bedoelt.

Dus:
Wat wil jij ophalen?

Geef bijvoorbeeld een lijstje zoals ik hierboven met bier/wijn doe en zeg wat je wilt verkrijgen
de bedoeling is dat ik 1 record terug krijg met het hoogste alcohol percentage
dus als ik heb:
bier 4,95 3
wijn 5,95 15

Dan is dus wijn het hoogste alcohol percentage (15%)
dan krijg je
wijn 5,95 15
dat kan dus niet in een keer.
Het zou nog lukken als je de prijs achterwege liet, maar stel dat jouw lijstje was

bier 4.95 3
wijn 5.95 15
wijn 6.95 15

Wat wilde je dan als resultaat?
resultaat:
wijn 6.95 15
wijn 5.95 15
bier 4.95 3
Dan zul je nog een ORDER BY MAX(a.Alcohol) DESC, p.Prijs DESC moeten toevoegen.
@robert:
dat is strijdig met je post van 14:06

want daar viel bier af omdat het percentage niet het hoogste was

Reageren