Ich habe eine kurze Frage zu Postgres SQL.Rekursive Liste von Unterprodukten in Postgres SQL
Mein Ziel ist ein Produkt Tabelle, wo wir 1 oder mehrere Elternprodukte und dann bestimmte Kinderprodukte haben.
In einer anderen Tabelle Umsatz ich nur den Verkauf eines bestimmten Produkts setzen.
Nun zu meiner SQL:
Ich möchte bascially alle Verkäufe pro superparent Produkt abzurufen, in meinem Beispiel mobile und zu Hause mit der Summe der Verkäufe aus den Unterprodukten.
My SQL bisher:
WITH RECURSIVE assignDepth (id, depth, parent) AS (
SELECT p.id, 0 as depth, p.parent
FROM product p
WHERE p.parent IS NULL
UNION ALL
SELECT p.id, c.depth+1, p.parent
FROM product p, assignDepth c
WHERE p.parent = c.id
),
getProductValue (id, name, value, parent) AS (
SELECT p.id, p.name, 0 as value, p.parent
FROM product p,
WHERE p.depth = (SELECT MAX(depth) FROM assignDepth)
UNION ALL
SELECT p.id, p.name,SUM(
SELECT s.value
FROM sales s
WHERE c.id = s.product), p.parent
FROM product p, getProductValue c
WHERE p.id = c.parent
)
SELECT * FROM getProductValue;
Vielen Dank im Voraus, wird jede Hilfe dankbar! :)