Selectionner 3 premières valeurs d'une table en fonction d'une catégorie

Le
boogie
Bonjour, tout est dans le titre . Comment via une requete en access
selectionner les 3 premières valeurs d'une table en fonction de chaque
catégorie.

Rmq : la méthode SQL Top 3 ne fonctionne pas car celle-ci reprend les
3 top valeurs de la table et non par catégorie..

Ex Table

Enregistrement 1 Catégorie A ValeurA
Enregistrement 2 Catégorie B ValeurB


Résultat requete

Enregistrement A1 CatégorieA 1valeurCatA
Enregistrement A2 CatégorieA 2valeur
Enregistrement A3 CatégorieA 3valeur
Enregistrement B1 CatégorieB 1valeurCatB
Enregistrement B2 CatégorieB
Enregistrement B3 CatégorieB


Merci pour votre aide
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel__D
Le #20687511
Bonjour,

boogie a écrit :
Bonjour, tout est dans le titre .... Comment via une requete en access
selectionner les 3 premières valeurs d'une table en fonction de chaque
catégorie.

Rmq : la méthode SQL Top 3 ne fonctionne pas car celle-ci reprend les
3 top valeurs de la table et non par catégorie.....

Ex Table

Enregistrement 1 Catégorie A ValeurA
Enregistrement 2 Catégorie B ValeurB
.......

Résultat requete

Enregistrement A1 CatégorieA 1valeurCatA
Enregistrement A2 CatégorieA 2valeur...
Enregistrement A3 CatégorieA 3valeur...
Enregistrement B1 CatégorieB 1valeurCatB
Enregistrement B2 CatégorieB ...
Enregistrement B3 CatégorieB ...


Merci pour votre aide



Tu peux par exemple énumérer/compter combien tu as d'enregistrement par
Catégorie ensuite tu prends les 3 premiers.

SELECT T1.Enregistrement, T1.[Catégorie], T1.ValeurCat, Count(T1.ValeurCat) AS Nb
FROM LaTable AS T1 INNER JOIN LaTable AS T2 ON T1.[Catégorie]=T2.[Catégorie]
And T1.Enregistrement>=T2.Enregistrement
GROUP BY T1.Enregistrement, T1.[Catégorie], T1.ValeurCat;

SELECT T1.Enregistrement, T1.[Catégorie], T1.ValeurCat
FROM LaRequetePrecedente AS T1
WHERE T1.Nb < 4;

PS:A adapter, mais il faut surtout trouver comment évaluer la progression.
Publicité
Poster une réponse
Anonyme