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:
Cela donne un résultat de ce genre:
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 ....
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:
C’est déjà un peu mieux, mais ce n'est pas encore ca:
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 ...
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.
Partager