【发布时间】:2019-07-02 06:06:17
【问题描述】:
我正在尝试为先决单元创建祖先表。我不知道如何使用 SQL 脚本为 Level 2、3 等插入数据...
我有三张桌子:
- Unit_Of_Competency(Unit_Of_Competency_ID:uniqueidentifier,UoC_Code:varchar(20),UoC_Title:varchar(200),Descriptor:varchar(500))
- 先决条件(ID:uniqueidentifier,Unit_Of_Competency_ID:外键引用 Unit_Of_Competency_ID,Prerequisite_ID:外键引用 Unit_Of_Competency_ID)
- Prerequisite_Ancestor(Prerequisite_Ancestor_ID、Unit_Of_Competency_ID:外键引用 Unit_Of_Competency_ID、Prerequisite_ID:外键引用 Unit_Of_Competency_ID)
能力单元表有以下数据:
先决条件表有以下数据:
在加入 Unit_Of_Competency 和先决条件后,我们会得到以下输出:
我需要填充 Prerequisite_Ancestor 表;我只填充到 1 级
我需要填充级别 2、3、4 的祖先表 例如,
- 贝叶斯定理 ||事业部 || 2
- 概率 ||数学 || 2
- 贝叶斯定理 ||数学 || 3
我在 Prerequisite_Ancestor 表中输入 Ancestor_Level 1 的方式是使用以下脚本:
INSERT INTO Prerequisite_Ancestor (Prerequisite_Ancestor_ID, UoC_ID, Prerequisite_ID, Ancestor_Level)
select newID(), U.Unit_Of_Competency_ID as UoC, P.Prerequisite_ID as Prerequisite, 1 from Prerequisite P
join Unit_Of_Competency U on P.Unit_Of_Competency_ID=U.Unit_Of_Competency_ID
join Unit_Of_Competency U2 on U2.Unit_Of_Competency_ID=P.Prerequisite_ID
如何使用脚本进入 Levels 2, 3, ...?
提前谢谢你:)
【问题讨论】:
标签: sql-server database hierarchy ancestor