0
我很抱歉問一個問題可能已經被回答,但我真的很努力去理解如何正確地得到我需要的數據庫。我有一個primavera P6數據庫,我試圖從中獲取可用的WBS代碼。但是,因爲我將它構建到報告儀表板中,我需要做的不僅僅是連接父/子值。我的問題將分爲兩部分,但在此理解我的問題是數據庫的基本模型。T-SQL遞歸父子選擇與平整列
wbs_id wbs_short_name parent_wbs_id
1 CONTR null
2 RET null
3 PRC 1
4 FEE 1
5 PRC 2
6 FEE 2
7 100 3
8 110 4
9 200 5
10 210 6
我的第一個問題是,我怎麼可以編寫一個查詢,這將給我wbs_short_name的每個不同「級別」,在單獨的平整列?最終的結果應該是這樣的:
Level_1 Level_2 Level_3 Level_4
CONTR PRC 100 null
CONTR FEE 110 null
RET PRC 200 null
RET FEE 210 null
我添加了一個level_4因爲在實際的數據庫中的水平向下延伸到約7個級別,但這樣會過於複雜這個例子。我的第二個問題是(我預計)要簡單得多,是否可以添加一個額外的結尾列,將所有這些級別連接並組合到一個WBS代碼中?這將是這樣的:
Level_1 Level_2 Level_3 WBS
CONTR PRC 100 CONTRPRC100
CONTR FEE 110 CONTRPRC110
RET PRC 200 RETPRC200
RET FEE 210 RETPRC210
我需要爲限幅器控制在我的儀表板水平列,我需要的WBS才能夠建立一個鏈接表,這將讓我加入我的P6數據庫到我的其他數據源它們使用這些WBS代碼。感謝您提供的所有幫助。
你有兩種不同的技術怎麼回事,使這項工作。首先是獲取數據的遞歸cte。然後,您需要使用FOR XML來連接來自行的值。我們可以幫助但首先需要您提供一些信息。這裏是一個很棒的地方。開始。 http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –