Group By Query

Status
Niet open voor verdere reacties.

Tvhouwel

Gebruiker
Lid geworden
2 apr 2002
Berichten
258
Ik heb een tabelletje met artikelen, prijzen en de datum van de laatste prijsverhoging.
Nu wil ik een query maken waarin ik alleen de artikel velden zie en de prijs van de laatste prijsverhoging
Dit is de tabel

tabel.jpg

Dus van de groene verf wil ik alleen het record van 2017 zien.
Ik dacht het te doen met een Group By query, maar krijg het niet werkend, omdat ik de verschillende prijzen niet in de query krijg.
Zet ik in dat veld GroupBy dan laat hij alle regels zien natuurlijk en ik zou niet weten wat ik er anders in moet vullen

Zo ziet de query er uit

query.jpg

Kan iemand met uitleggen hoe ik dit moet doen ?
 
Een Group By query maakt unieke combinaties waarbij alle velden één record vormen. Dus als je alleen de velden Artikel, Kleur en Prijs zou doen en je zet het veld Prijs op de functie Max, dan krijg je voor Verf-Groen één record met de prijs 1,71. Die prijs krijg je ook te zien als je de functie Max op het Datumveld zet, maar dan krijg je dus twee records te zien voor Groen, omdat er twee prijzen zijn voor groen. En elke combinatie is dus uniek. Vandaar dat deze query zo niet werkt.
Je zult een subquery moeten gebruiken, die het datumveld filtert op de laatste datum. Daarmee beperk je dus de datumset tot één datum (per artikel natuurlijk) en dat levert automatisch ook één prijs op.
Als alternatief kan je, als je geen subquery wilt gebruiken, eerst een query maken die voor de artikelen en de kleur de maximale datum groepeert, en die koppel je dan in de query op basis van de unieke datum. Daarmee filter je de tabel ook.
 
Dank voor je antwoord OctaFish, het is duidelijk, ik ga het vanavond even uittesten met een subquery.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan