我有一个用户配置文件表,其中列User Name
,Manager
和许多其他字段,例如Amount
。SQL联盟/加入查询
示例记录:
User Manager Amount
A B 100
x y 200
B C 300
M N 800
C D 500
P Q 1000
D E 1000
我试图得到如下结果:
User Manager Amount
A B 100
B C 300
C D 500
D E 1000
基本上,我只是想表明在级联方式的结果让所有的行被提取直到找到用户的层次结构中的所有管理者。有人可以帮忙吗?
============
更新
我设法使用下面的查询来解决这个问题:
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
感谢您的帮助。 Abhi。
你能对用户是否可能有多个经理拓展,无论是经理可以有多个用户,以及在这些情况下你需要什么?还是你总是限制你的查询作为一个用户的起点? – Tobiasopdenbrouw 2010-08-11 10:29:44
一个用户只能有一个经理,但一个经理可以是多个用户的经理。 我的出发点是用户A,我想列出层级中的所有管理者。 – 2010-08-11 10:56:54
@Abhi:请将您的解决方案作为答案添加,以便其他人可以在将来更轻松地找到答案。谢谢。 – sarnold 2012-03-20 03:17:41