J'ai un tableau de profil utilisateur avec les colonnes User Name
, Manager
et de nombreux autres champs, par exemple, Amount
.SQL Union/Join requête
Exemple Records:
User Manager Amount
A B 100
x y 200
B C 300
M N 800
C D 500
P Q 1000
D E 1000
Je suis en train d'obtenir le résultat comme suit:
User Manager Amount
A B 100
B C 300
C D 500
D E 1000
Fondamentalement, je veux juste montrer les résultats en cascade manière à ce que toutes les lignes sont extraites jusqu'à ce qu'il trouve tous les gestionnaires dans la hiérarchie pour un utilisateur. Quelqu'un peut-il aider?
============
Mise à jour
J'ai réussi à résoudre le problème en utilisant la requête suivante:
WITH rec(c1, c2)
AS (SELECT c1, c2 FROM table WHERE c2 = 'A'
UNION ALL
SELECT table.c1, table.c2 FROM table, rec WHERE table.c2 = rec.c2)
SELECT c1, c2 FROM rec
Merci pour l'aide. Abhi.
Pourriez-vous si un utilisateur peut avoir plusieurs gestionnaires, et si un gestionnaire peut avoir plusieurs utilisateurs, et ce dont vous auriez besoin dans ces instances? Ou limitez-vous toujours votre requête à un utilisateur comme point de départ? – Tobiasopdenbrouw
Un utilisateur ne peut avoir qu'un seul gestionnaire, mais un gestionnaire peut gérer plusieurs utilisateurs. Mon point de départ sera l'utilisateur A et je souhaite lister tous les gestionnaires de la hiérarchie. –
@Abhi: Veuillez ajouter votre solution en guise de réponse afin que les autres puissent la trouver plus facilement à l'avenir. Merci. – sarnold