Entwicklungsindikator??

Hallo,

Ich habe mal wieder eine Frage und hoffe hier Hilfe bekommen zu können.
Es geht um eine Abfrage in SQL. Ich habe eine Tabelle mit Daten über mehrere Jahre

indikator | jahr | datenwert | raumeinheit
1 | 1981 | 2250 |100
1 | 1981 | 546 | 101
1 | 1981 | 1566 | 102
1 | 1981 | 198 | 103

1 | 1984 | 2450 |100
1 | 1984 | 746 | 101
1 | 1984 | 1346 | 102
1 | 1984 | 56 | 103

ich möchte jetzt immer die Entwicklung des Datenwertes innerhalb eines bestimmten Zeitraumes berechnen. Z.B. wie hat sich der Wert in 3 Jahren verändert.
Dazu gibt es die folgende Formel:
((indikatorwert - indikatorwert vor x jahren)*100)/indikatorwert vor x jahren

z.B.
((2450 - 2250)*100)/2250 = 8.889
((746 - 546)*100)/546 = 36.63
((1346 - 1566)*100)/1566 = -14.049
((56 - 198)*100)/198 = 8.889 = -71.717

das sollte dann im ergebnis eins solche Tabelle geben. Diese beginnt dann natürlich erst beim Jahr 1985.

indikator | jahr | datenwert | raumeinheit
1 | 1985 | 8.889 |100
1 | 1985 | 36.63 | 101
1 | 1985 | -14.049 | 102
1 | 1985 | -71.717 | 103

Kann ich das ganze jetzt irgendwie in eine SQL Abfrage stecken? Irgendwie bekomme ich das nicht hin und bin mir auch gerade nicht sicher wie das gehen könnte. Hat jemand eine Idee oder kann mir auf die Sprünge helfen, bitte? Für eure Hilfe und eure nette Unterstützung bedanke ich mich recht herzlich im Voraus.
Gruss
Hanno

Ohne jetzt das Problem komplett verstanden zu haben, aber ich denke, Du suchst Window-Funktionen, hier insbesondere lag(). Damit kannst Du auf vorhergehende Datensätze zugreifen, z.B. auf aktuelle Zeile - N Zeilen.

super,
Danke dir. Das ist genau was ich geuscht habe. Falls es interessiert:

select
jahr,
(((datenwert - lag(datenwert,4) over (order by raumeinheit,jahr))*100)/lag(datenwert,4) over (order by raumeinheit,jahr) ) as datenwert,
ind10001.raumeinheit as raumeinheit
from ind10001