Super, vielen Dank für die Antwort.
nach etwas rumprobieren hab ich es tatsächlich geschaft. In wie weit mein code irgendwelche Standards o. Best-Practices erfüllt kann ich tatsächlich nur raten, und muss annehmen wohl eher nicht so. Trotzdem hier die Backend Funktion die ich gebaut habe.
`
$BODY$
DECLARE
BEGIN
WITH RECURSIVE bauteile_in_stueklisten((stuecklisten.stueklisten.teile_sachnummer), (stuecklisten.stueklisten.baugruppen_sachnummer), (stuecklisten.stueklisten.anzahl)) AS (
SELECT (stuecklisten.stueklisten.teile_sachnummer), (stuecklisten.stueklisten.baugruppen_sachnummer), (stuecklisten.stueklisten.anzahl) FROM {stuecklisten}.[stueklisten] WHERE (stuecklisten.stueklisten.baugruppen_sachnummer) = _produkt
UNION ALL
SELECT p.(stuecklisten.stueklisten.teile_sachnummer), p.(stuecklisten.stueklisten.baugruppen_sachnummer), p.(stuecklisten.stueklisten.anzahl) * pr.(stuecklisten.stueklisten.anzahl)
FROM bauteile_in_stueklisten pr, {stuecklisten}.[stueklisten] p
WHERE p.(stuecklisten.stueklisten.baugruppen_sachnummer) = pr.(stuecklisten.stueklisten.teile_sachnummer)
)
INSERT INTO {stuecklisten}.[teile_reservierung] ((stuecklisten.teile_reservierung.aufgeloeste_teile_sachnummer), (stuecklisten.teile_reservierung.aufgeloeste_anzahl_gesamt), (stuecklisten.teile_reservierung.auftrags_nummer))
SELECT (stuecklisten.stueklisten.teile_sachnummer), SUM((stuecklisten.stueklisten.anzahl)) AS anzahl_gesamt, _auftrag
FROM bauteile_in_stueklisten
GROUP BY (stuecklisten.stueklisten.teile_sachnummer);
RETURN 0;
END;
$BODY$
`
Vielleicht hilft es ja jemanden der hier nochmal drüber fällt