我是编写递归查询的新手,我正在尝试编写我的第一个查询。我正在尝试确定公司层次结构的级别,并让结果表包含两列 - 顾问 ID 和由递归查询确定的级别。在 CTE 中,我无法弄清楚如何引用“级别”,因为它是表中尚不存在的列。我究竟做错了什么?
WITH consultantsandlevels
(c."ConsultantDisplayID",
consultantsandlevels."level"
)
AS
(
SELECT c."ConsultantDisplayID",
0
FROM flight_export_consultant AS c
WHERE c."ParentPersonDisplayID" IS NULL
UNION all
SELECT c."ConsultantDisplayID",
c."ParentPersonDisplayID",
consultantsandlevels."level" + 1
FROM flight_export_consultant
JOIN consultantsandlevels ON c."ParentPersonDisplayID" = consultantsandlevels."ConsultantDisplayID"
)
SELECT *
FROM consultantsandlevels;