Top 5 in een Access Query

Status
Niet open voor verdere reacties.

Toasty

Gebruiker
Lid geworden
30 mei 2014
Berichten
50
Goedemorgen,

ik wil de top 5 van records per groep automatisch weergeven. Het kan ook zijn dat de groep minder dan 5 records heeft. De query bestaat uit 3 kolommen:
Hoofdgroep (waar de top 5 op gebaseerd moet worden), Subgroep en omzet (Wat dus de restrictie voor de top 5 moet worden). Ik ben geen held in VBA.

Kan iemand me helpen?
 
Je hebt er gelukkig ook geen VBA voor nodig, maar wel een redelijk ingewikkelde query. Althans: als je niet zoveel queries maakt. Op deze pagina vind je een voorbeeldje van zowel query als VBA. Kom je er niet uit: voorbeeldje :).
 
Ik snap het niet helemaal. Ik kan het dikgedrukte deel niet verklaren en daarom ook niet omzetten naar mijn (op een query gebaseerde-) toepassing.

Field: CategoryName
Sort: Ascending

Field: ProductName

Field: UnitsInStock
Sort: Descending
Criteria: In (Select Top 3 [UnitsInStock] From Products Where _
[CategoryID]=[Categories].[CategoryID]
Order By [UnitsInStock] Desc)
 
We hebben meer aan je eigen query, want daar zien we meer aan. De truc is in beginsel niet zo moeilijk: in Noordenwind heb je een tabel [Products] die is gekoppeld aan de tabel [Categories]. Je wilt nu per categorie de 5 producten zien met de grootste voorraad. De Top 5 zie je als je de functie TOP # gebruikt (hier dus de waarde 5) en aflopend sorteert op dat veld. Dan zie je namelijk de 5 grootste waarden. Om die waarden per categorie te zien wordt een subquery gebruikt, die die TOP waarden selecteert. En dat is dus deze query.
Code:
In (Select Top 5 [UnitsInStock] From Products Where [CategoryID]=[Categories].[CategoryID] Order By [UnitsInStock] Desc)
Het criterium begint met IN omdat je een selectie maakt. In begrenst die selectie.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan