2
李正在試圖壓平/從表一中父子層次相結合的行。我試圖找出開始,每個「鏈接」的結束 - 所以,如果一個鏈接到b,b鏈接到ç,然後ç鏈接到d ,我想輸出鏈接一個到d。聯合親子行 - TSQL
我想我最好避免使用與循環的過程,所以任何建議,將不勝感激!
的原始數據集和所需的輸出如下所示:
personID | form | linkedform
---------|---------|---------
1 | a | b
1 | b | c
1 | c | d
1 | d | NULL
2 | e | f
2 | f | g
2 | g | NULL
2 | h | i
2 | i | NULL
3 | j | NULL
3 | k | l
3 | l | NULL
希望的輸出:
personID | form | linkedform
---------|---------|---------
1 | a | d
2 | e | g
2 | h | i
3 | j | NULL
3 | k | l
每個PERSONID可以有多個鏈接以及鏈接可以由僅一個或多個的形式。
這看起來像使用max函數的簡單GROUPBY。 編輯:關於第二個想法,也許不是...... – user2366842
在我看來,你希望每個人的所有形式的葉節點,這是在tSQL中用遞歸CTE處理的。 @ user2366842我不這麼認爲。查看存在多條路徑的personID 3或2。 – xQbert
下面是和[SQL小提琴](http://sqlfiddle.com/#!6/9100c/2)示出了遞歸CTE。從這裏開始,所需的輸出只有幾步之遙。 – xQbert