У меня есть две таблицы, одна хранит TechTree и имеет следующую структуру:рекурсии, чтобы получить полную иерархию
**TECHTREE TABLE**
ID - int
ParentID - int (relational to ID)
name - varchar
и А DataTable «UserSkills» со следующей структурой:
**USERSKILLS TABLE**
TECHID - int (relational to TECHTREE.ID)
SKILLLEVEL - varchar
LOGIN - varchar
Предоставленная следующие данные TechTree
ID ParentID Name
1 24 Microsoft
2 1 Server
3 1 Hyper-V
4 24 VMWare
5 4 vSphere
7 2 Betriebssystem
8 2 AD, DNS, DHCP
9 2 PKI
14 5 4.x
15 5 5.x
16 4 VDI/View
17 4 SRM
18 24 Symantec
19 18 Backup Exec
20 19 2010
21 19 2012
22 18 SEP
23 24 Citrix
24 NULL Data Center SW
25 NULL Data Center HW
26 NULL IPT
27 NULL Networking
28 NULL Security
29 NULL Misc
и следующие данные userskills
TechID SkillLevel Login
7 Expert mike
8 Basics mike
9 Basics peter
67 Expert peter
31 Expert peter
32 Support chris
33 Expert peter
34 Expert chris
35 Expert adam
36 Support adam
65 Support adam
66 Expert tom
78 Expert tom
75 Basics tom
76 Expert tom
77 Expert tom
Теперь я хочу, чтобы получить строки из userskill таблицы включая полной иерархии из таблицы TechTree. Результат должен выглядеть
ID LVL0 LVL1 LVL2 LVL3 LVL4 LVL5 LVL6 Skilllevel
7 Data Center SW Microsoft Server OS Expert
8 Data Center SW Microsoft Server AD, DNS, DHCP Basics
9 Data Center SW Microsoft Server PKI Basics
67 Networking Expert
31 Networking Expert
ли знает кто-нибудь, как это может быть достигнуто в SQL Server?
Можете ли вы подготовить демоверсию SQL FIddle, пожалуйста? И сколько уровней вы ожидаете? – gbn
Я ожидаю максимум 5 уровней. Скрипка на пути. – Mike246912
@ Mike246912 в вашем примере, как вы получаете основы, когда ID = 9, поскольку в записи PKI нет каких-либо навыков, связанных с ним? –