Bonjour,
Je suis un peu perdu. J'ai besoin de retourner par une requête, certaines infos mais je ne comprend pas le fonctionnement du GROUP BY/DISTINCT. Pourriez-vous m'aider s'il vous plait ?
En fait voilà. j'ai une base PRODUITS avec par exemple les champs suivants :
Elle contient par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ID (int) Cat (int) Nom (nvarchar(250)) Descr (ntext) Img (nvarchar(50)) Tarif (float) Actif (bit) GroupNom (nvarchar(250)) GroupClassement (int)
ID / Cat / Nom / Descr / Img / Tarif / Actif / GroupNom / GroupClassement
1 / 1 / peugeot 307 / 3 portes... / p307.jpg / 5000.00 / 1 / PEUGEOT / 3
2 / 1 / peugeot 207 / 5 portes... / p207.jpg / 4000.00 / 0 / PEUGEOT / 2
3 / 1 / peugeot 407 / 5 portes... / p407.jpg / 7000.00 / 1 / PEUGEOT / 1
4 / 1 / Citroen C5 / 5 portes... / CC5.jpg / 3000.00 / 1 / CITROEN / 2
5 / 1 / Citroen C1 / 3 portes... / CC1.jpg / 7000.00 / 0 / CITROEN / 1
6 / 1 / Ford Fiesta / 3 portes... / ff.jpg / 3000.00 / 1 / FORD / 1
J'aimerais que ma requête me retourne les lignes complètes mais en faisant un distinct sur la colonne GroupNom et faisant un order by GroupClassement DESC de manière à récupérer les infos du produit le mieux classé dans le GroupNom.
> Par exemple, le résultat que j'attends est celui-ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 1 / 1 / peugeot 307 / 3 portes... / p307.jpg / 5000.00 / 1 / PEUGEOT / 3 4 / 1 / Citroen C5 / 5 portes... / CC5.jpg / 3000.00 / 1 / CITROEN / 2 6 / 1 / Ford Fiesta / 3 portes... / ff.jpg / 3000.00 / 1 / FORD / 1
Je ne vois pas comment obtenir ce résultat ni par un distinct, ni en utilisant group by.
Est-ce possible de faire cela en une seule requête seulement ? Ou peut être en plusieurs requêtes imbriqués en une ?
Merci pour toute votre aide.
Partager