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-Key: 2649208531

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

Printed on: July 24, 2024 at 00:07 o'clock

Member: Thomas2
Solution Thomas2 Apr 30, 2022 at 15:03:01 (UTC)
Goto Top
Lösung:
T1 muss sich auf MyTest beziehen, dann geht es.