Hier ist ein Beispielskript, das einen allgemeinen Tabellenausdruck verwendet:
with recursive sumthis(id, val) as (
select id, value
from example
where id = :selectedid
union all
select C.id, C.value
from sumthis P
inner join example C on P.id = C.parentid
)
select sum(val) from sumthis
Das obige Skript erstellt eine „virtuelle“ Tabelle namens sumthis die Spalten id hat und val . Es ist definiert als das Ergebnis zweier Auswahlen, die mit union all zusammengeführt wurden .
Zuerst select erhält die Wurzel (where id = :selectedid ).
Zweites select folgt iterativ den Kindern der vorherigen Ergebnisse, bis nichts mehr zurückzugeben ist.
Das Endergebnis kann dann wie eine normale Tabelle verarbeitet werden. In diesem Fall wird die Val-Spalte summiert.