Ich entschuldige mich für das Stellen einer Frage, die wahrscheinlich schon beantwortet wurde, aber ich habe wirklich Mühe zu verstehen, wie ich das, was ich brauche, aus meiner Datenbank bekomme. Ich habe eine Primavera P6 Datenbank, von der ich versuche, brauchbare WBS Codes zu bekommen. Da ich dies jedoch in einem Berichtsdashboard aufbaue, muss ich mehr tun, als nur Eltern-/Kindwerte zu verketten. Meine Frage wird in zwei Teilen bestehen, aber um meine Frage zu verstehen, ist das Grundmodell der Datenbank.T-SQL rekursives übergeordnetes Kind mit geebneten Spalten auswählen
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
Meine erste Frage ist, wie kann ich eine Abfrage schreiben, die mir jede andere „Ebene“ geben werden von wbs_short_name in separaten Spalten nivelliert? Das Endergebnis sollte wie folgt aussehen:
Level_1 Level_2 Level_3 Level_4
CONTR PRC 100 null
CONTR FEE 110 null
RET PRC 200 null
RET FEE 210 null
Ich habe eine LEVEL_4 weil in der aktuellen Datenbank hinzugefügt die Pegel auf etwa 7 Stufen nach unten erstrecken in, aber das würde in diesem Beispiel verkomplizieren. Meine zweite Frage ist (ich erwarte) viel einfacher, ist es dann möglich, eine zusätzliche Endspalte hinzuzufügen, die all diese Ebenen zu einem einzigen PSP-Code verkettet und kombiniert? Das würde wie folgt aussehen:
Level_1 Level_2 Level_3 WBS
CONTR PRC 100 CONTRPRC100
CONTR FEE 110 CONTRPRC110
RET PRC 200 RETPRC200
RET FEE 210 RETPRC210
ich die Ebene Spalten für Slicer Kontrollen auf meinem Armaturenbrett benötigen und ich brauche die PSP in der Lage sein eine Verknüpfungstabelle zu konstruieren, die mir erlauben, zu meiner P6 Datenbank zu meinen anderen Datenquellen zu verbinden die diese PSP-Codes verwenden. Danke für jede Hilfe.
Sie haben zwei verschiedene Techniken gehen auf diese Arbeit zu machen. Erstens ist eine rekursive cte, um die Daten zu erhalten. Dann müssen Sie FOR XML verwenden, um Werte aus den Zeilen zu verketten. Wir können Ihnen helfen, benötigen aber zuerst einige Informationen von Ihnen. Hier ist ein großartiger Ort. anfangen. http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –