0
階層クエリを作成する際に問題があります。階層SQLサーバーが2つの異なるテーブルに結合する
表A - 注文コード、物品、数量を有するオーダー:
Iは、MS SQL DBに以下た物品のアセンブリ参照と
OP | ART | QTY
A | X |100
B | Y |200
表Bが、物品から作製することができます子供の参照が存在する場合には他の記事には、(深さ3つのレベルに行くために必要がある場合があります):
ART | ART2 |QTY
X | U | 20
X | O | 10
X | Z | 30
Y | Q | 20
Y | W | 15
Y | E | 30
U | Z | 10
をそして、私はこのような何かを取得したい:
を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
私はすでに一つのこと行った:
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
をしかし、今、私は、テーブルAと量に参加する方法がわからないでも最初のテーブル上のすべてのアイテムのために、このクエリを実行する方法。
誰でも教えてください。
多くのありがとうございます!
レスポンダをより簡単にするには、SQL Fiddleを作成してください。http://sqlfiddle.com/ – Alex