Bonjour,
j'aimerais trier les résultats d'un SELECT d'une façon spéciale,
plus précisément trier sur 2 champs en même temps.
Pour cela, je dois tester ces 2 champs et mettre le résultat de ce test dans un 3 ème champ... vous me suivez ? nan ? j'm'en doute...
contexte :
- 3 tables : personne(p_id, p_nom, p_id_categorie), groupe(g_id, g_nom, g_id_categorie), catégorie(c_id, c_nom)
- un groupe appartient à [0,1] catégorie
- une personne appartient à [0,1] catégorie
- une personne appartient à [0,1] groupe
Un SELECT simple m'afficherai 6 champsmais j'ai veut seulement 5g_id, g_nom, g_categorie, p_id, p_nom, p_categoriesur ce principe :categorie, g_id, g_nom, p_id, p_nom
- si (g_catégorie = A) && (p_catégorie = B) alors categorie = A
- si (g_catégorie = A) && (p_catégorie = null) alors categorie = A
- si (g_catégorie = null) && (p_catégorie = B) alors categorie = B
- si (g_catégorie = null) && (p_catégorie = null) alors categorie = null
Et là vous comprenez ?
Voici ma requête actuelle :Et voici ma question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 SELECT G.g_id, G.g_nom, GC.categorie AS g_categorie, P.p_id, P.p_nom, PC.categorie AS p_categorie, FROM t_personne P LEFT JOIN t_groupe G ON G.id = E.id_groupe LEFT JOIN t_categorie PC ON PC.c_id = P.p_id_categorie LEFT JOIN t_categorie GC ON GC.c_id = G.p_id_categorie ORDER BY GC.g_categorie ASC, G.g_nom ASC, PC.p_categorie ASC, P.p_nom ASC;
Comment faire ?
merci d'avance...
Partager