Ich versuche zu sehen, ob ich einen Wert aus einer übergeordneten Beziehung innerhalb der gleichen Tabelle erhalten konnte.SQL Server Berechnetes Feld - Daten aus einem übergeordneten Datensatz
Im folgenden Beispiel ist eine Beziehung zu einem übergeordneten Element. RouteName
sollte idealerweise ein berechnetes Feld sein, das den routename des direkten Elternteils auswählt (oder den Namen, wenn null).
Auf diese Weise konnte ich eine vollständige Route erstellen, indem nur die direkte übergeordnete ausgewählt und würde Iterating oder CTE'ing über alle Datensätze speichern. Ist das möglich?
+----+------------------+-------------------------------------+-----------+
| ID | Name | RouteName | Parent_ID |
+----+------------------+-------------------------------------+-----------+
| 1 | Parent | NULL | |
+----+------------------+-------------------------------------+-----------+
| 2 | Child 1 | Parent - Child 1 | 1 |
+----+------------------+-------------------------------------+-----------+
| 3 | Child of Child 1 | Parent - Child 1 - Child of Child 1 | 2 |
+----+------------------+-------------------------------------+-----------+
Wie viele Stufen von _parenthood_ erwarten Sie? Wenn nicht vordefiniert, wäre die Rekursion die einzig vernünftige Lösung. – FDavidov
Ich habe ein Limit von drei - ziemlich genau wie oben. – ExternalUse
Wenn ich den Namen des direkten Elternteils in einem berechneten Feld erhalten könnte, in dem ich den aktuellen Namen verketten könnte, wäre mein Problem gelöst. Pseudo: Wenn Parent_ID nicht Null ist, wählen Sie Parent.Name + '| '+ this.name – ExternalUse