Ich habe ein Problem beim Erstellen einer Hierarchieabfrage.Hierarchie-SQL-Server, der zwei verschiedene Tabellen verbindet
Ich habe folgendes in MS SQL-DB:
Tabelle A - Aufträge mit Bestellcode, Artikel, Menge:
OP | ART | QTY
A | X |100
B | Y |200
Tabelle B mit Montage Referenzen der Artikel, sondern Gegenstände können aus gemacht werden andere Artikel, wenn es ein Kinderreferenz existieren (kann 3 Ebenen tief gehen müssen):
ART | ART2 |QTY
X | U | 20
X | O | 10
X | Z | 30
Y | Q | 20
Y | W | 15
Y | E | 30
U | Z | 10
Und ich möchte so etwas bekommen:
A.OP |LEVEL| ART | B.ART2 |QTY
A | 2 | X | Z |(100*20*10)=2000
A | 1 | X | O |(100*10) =1000
A | 1 | X | Z |(100*30) = 3000
B | 1 | Y | Q |(200*20) = 4000
B | 1 | Y | W |(200*15) = 3000
B | 1 | Y | E |(200*30) = 6000
B | 1 | Y | Z |(200*10) = 2000
Ich habe schon eine Sache gemacht:
WITH X AS (
SELECT
firstlvl.ART,
1 AS LEVEL,
firstlvl.ART2,
firstlvl.QTY,
QTY AS PARENTQTY
FROM B AS firstlvl
WHERE firstlvl.ART='X'
UNION ALL
SELECT secondlevel.ART,
EL.LEVEL +1,
secondlevel.BDT_MLC,
secondlevel.ART2,
secondlevel.QTY,
EL.PARENTQTY AS PARENTQTY
FROM B AS secondlevel
INNER JOIN X AS EL
ON secondlevel.ART = EL.ART2)
SELECT * FROM X
Aber jetzt weiß ich nicht, wie Mengen mit Tabelle A zu verbinden, noch wie diese Abfrage für alle Elemente auf dem ersten Tisch laufen.
Kann mir bitte jemand helfen?
Vielen Dank!
Um es für Responder einfacher zu machen, machen Sie bitte eine SQL Fiddle http://sqlfiddle.com/ – Alex