thomas2
Goto Top

MSSQL Rekursion mit errechneter Spalte

Hallo zusammen,

Datenbank: MSSQL
ich habe ein Problem bei der Verwendung einer errechneter Spalte in einer rekursiven SQL Abfrage. Die errechnete Spalte ist in der abgefragten Tabelle nicht vorhanden und kann deshalb nicht angezogen werden. "Unbekannte Spalte Tier" ist das Ergebnis.

Funktionierendes Beispiel, nur errechnete Spalten ohne Abfrage einer Tabelle:
WITH FAKULTAET(N, F)
AS (
SELECT 1 AS N, 1 AS F
UNION ALL SELECT VORIG.N + 1 AS N, VORIG.F * (VORIG.N + 1) AS F FROM FAKULTAET VORIG WHERE VORIG.N < 10
)
SELECT N, F FROM FAKULTAET ORDER BY N

Nicht funktionierendes Beispiel mit Abfrage einer Tabelle:
WITH MyTest (Father, Code, Tier) 
AS ( 
SELECT Father, Code, 1 AS Tier FROM MyTable WHERE Father = 'MyCriteria'   
UNION ALL SELECT T0.Father, T0.Code, T0.Tier + 1 FROM MyTable T0 INNER JOIN MyTable T1 ON T0.Father = T1.Code
)
SELECT Father, Code, Tier FROM MyTest ORDER BY Tier;

Ich habe auch schon eckige Klammern und einfache Anführungszeichen um die Bezeichnung "Tier" versucht, ohne Erfolg. Wie kann ich auf die Spalte Tier zugreifen?

Vielen Dank im Voraus,
Thomas

Content-ID: 2649208531

Url: https://administrator.de/contentid/2649208531

Ausgedruckt am: 24.11.2024 um 01:11 Uhr

Thomas2
Lösung Thomas2 30.04.2022 um 17:03:01 Uhr
Goto Top
Lösung:
T1 muss sich auf MyTest beziehen, dann geht es.