Bonjour,

Ma BDD gère les POSTE informatique de CLIENT répartis dans une hiérarchie de GROUPE (+sous groupes = GROUPE).
En gros, un groupe peut avoir 0,n groupes et chaque client a 1,n groupes (avec un seul groupe de niveau 1).
Voici ma base test :
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
CREATE TABLE "CLIENT" (
    "id" INTEGER  PRIMARY KEY ,
    "nom" VARCHAR(50)  NOT NULL );
 
CREATE TABLE "GROUPE" (
    "id" INTEGER  PRIMARY KEY ,
    "nom" VARCHAR(50)  NOT NULL ,
    "id_client" INTEGER ,
    "id_groupe_parent" INTEGER );
 
CREATE TABLE "POSTE" (
    "id" VARCHAR(38)  NOT NULL  UNIQUE ,
    "nom" VARCHAR(16)  NOT NULL ,
    "datetime_cnx" TIMESTAMP );
 
ALTER TABLE "GROUPE" ADD FOREIGN KEY ("id_client") REFERENCES "CLIENT" ("id");
ALTER TABLE "POSTE" ADD FOREIGN KEY ("id_groupe") REFERENCES "GROUPE" ("id");
ALTER TABLE "GROUPE" ADD FOREIGN KEY ("id_groupe_parent") REFERENCES "GROUPE" ("id");
Ci-dessous, ma requête actuelle qui ne gère pas les "sous-groupe" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
SELECT
	C.nom AS C_nom,
	G.id AS G_id, G.nom AS G_nom,
	P.id AS P_id, P.nom AS P_nom
FROM
	POSTE AS P, GROUPE AS G, CLIENT AS C 
WHERE
	C.id = G.id_client AND
	P.id_groupe = G.id
L'idéal serait d'avoir ce genre de résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Client-1, G1, Ordinateurs, P1, Poste-1
Client-1, G1, Ordinateurs, P2, Poste-2
Client-2, G2, Ordinateurs, P3, Poste-12
Client-2, G2, Ordinateurs, P4, Poste-22
Client-2, G3, Comptabilité, P5, Poste-3
Client-2, G3, Comptabilité, P6, Poste-4
Client-2, G3, Comptabilité, P7, Poste-5
Client-2, G4, Facturation, P8, Poste-6
Client-2, G4, Facturation, P9, Poste-7
et... pour finalement générer un tableau avec ruptures du genre :
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
+ Client-1
	+ G-Ordinateurs
		Poste-1
		Poste-2
+ Client-2
	+ G-Ordinateurs
		Poste-12
		Poste-22
		+ G-Comptabilité
			Poste-3
			Poste-4
			Poste-5
		+ G-Facturation
			Poste-6
			Poste-7
Quelle méthode me permettrait cela ?
Merci pour votre aide !