Bonjour,

Je suis débutant en SQL et n'arrive pas à obtenir le résultat escompté. C’est pour cela que je sollicite votre aide pour optimiser tout ça.

J’ai une table avec 4 Champs: A.NOM et A.PRENOM, les noms et prénoms des personnes, SI_NAME, des noms de logiciels, et LOGIN, l'identifiant de la personne sur le logiciel.

Le début de ma requête initiale est le suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
SELECT ALL
(CONCAT( A.NOM, (CONCAT( ' ', A.PRENOM )) )),
SI_NAME,
LOGIN
FROM ....
Cela donne un résultat de ce genre:

Nom : resultat 1.jpg
Affichages : 142
Taille : 20,7 Ko

Seulement je voudrais un résultat un peu diffèrent, je voudrais n'avoir qu'une ligne par personne et le log de chaque logiciel dans une colonne différente.

J’ai donc essayé de modifié ma requête comme suit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
SELECT ALL	
	(CONCAT( A.NOM, (CONCAT( ' ', A.PRENOM )) )),
	CASE WHEN SI_NAME= 'Logiciel 1' THEN LOGIN
 	END as LOG1,
	CASE WHEN C.SI_NAME= 'Logiciel 2' THEN LOGIN
	END as LOG2
 
FROM ...
C’est déjà un peu mieux, mais ce n'est pas encore ca:

Nom : resultat 2.jpg
Affichages : 150
Taille : 18,8 Ko


J’ai essayé de jouer sur select all / select distinct mais sans succès.
J’ai également voulu utiliser ELSE dans mes CASE WHEN, mais n'ai pas trouvé quoi y mettre.
Enfin j'ai voulu essayé un GROUP BY pour grouper mes lignes d'une même personne mais j'ai systématiquement un message d'erreur.

Je suis sous oracle.

Je vous remercie par avance de l'aide que vous m'apporterez.