Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/05/2011, 18h28   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 54
Points : 10
Points : 10
Par défaut Requete - Sous-requete

Bonjour,

J'ai une table avec un ensemble de personnes, je souhaiterais selectionner toutes les personnes étant responsables de au moins une personne ayant le status actif='O'

Exemple de données:
Citation:
id matricule nom prenom responsable_hierarchique actif
1 001445 test1 test1 NULL O
2 001446 test2 test2 1 O
3 001447 test3 test3 NULL O
4 001448 test4 test4 NULL O
5 001449 test5 test5 4 O
6 001450 test6 test6 NULL N
7 001451 test7 test7 3 O
8 001452 test8 test8 3 N
Je commence par extraire toutes les personnes actives de ma table:

Code :
1
2
3
4
5
6
SELECT DISTINCT maTable.id, 
maTable.nom, 
maTable.prenom 
FROM maTable 
WHERE responsable<> 0 
AND actif='O'
Ma question est, comment de manière efficace puis-je intégrer ce select dans une autre requête pour me fournir la liste des responsables ?

Merci à vous
Cheeper est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 18h35   #2
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
Quelque chose comme ça ?
Code :
1
2
3
4
5
6
7
8
WITH SR AS (SELECT A1.responsable_hierarchique
FROM maTable A1
WHERE A1.responsable_hierarchique IS NOT NULL 
GROUP BY A1.responsable_hierarchique)
SELECT A2.id, a2.matricule, a2.prenom, a2.nom
FROM maTable A2
JOIN SR 
	ON SR.A1.responsable_hierarchique = A2.id
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 11h30   #3
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
ou quelque chose comme cela :

Code :
1
2
3
4
5
6
7
8
SELECT 
 T.matricule,
 T.nom,
 T.prenom
FROM maTable AS T
WHERE responsable_hierarchique IS NULL
 AND EXISTS (SELECT * FROM maTable AS T2 WHERE T.id = T2.responsable_hierarchique
             AND T2.actif = 'O') ;
++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 13h22   #4
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 54
Points : 10
Points : 10
Je vous remercie, je teste de ce pas...
Cheeper est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h05.


 
 
 
 
Partenaires

Hébergement Web