on 04-04-2012 8:35 AM
Guten Morgen,
ich benötige Hilfe bei einem Query, wo ich nicht nur die direkte Verbindung zu OITT.Father sondern auch die Überbaugruppen und die darüber liegenden als Ergebnis erhalte.
Beispiel:
Ein Stift = Baugruppe besteht aus Gehäuse und Mine
wenn ich also den Query ausführe:
SELECT
T0.[Father], T1.[Itemname], T0.[Warehouse]
FROM ITT1 T0
inner Join OITM T1 on T0.[Father] = T1.[Itemcode]
WHERE T0.[Code] =['mine']
So erhalte ich den Stift als Ergebnis.
Ist es möglich auch die Überbaugruppen in diesem Query zu erhalten:
z.B. Stifteset, Büroset (wo das Stifteset enthalten ist)...
Ich hoffe, mein Beispiel ist verständlich.
Vielen Dank für Eure Wissenswerte.
Hallo Markus,
ich hoffe der Gedankenanstoss hilft. (übernehme aber keine Gewähr für die Richtigkeit
Achtung: Falls du Phantom-Artikel in deinen Stücklisten hast, musst du sie überspringen bis der nächste "richtige" Artikel erkannt wird.
-- Auflösung nach oben
-- aqty benötigte Menge des übergeordneten Teiles
declare @itr nvarchar(20)
set @itr = 'SMB200F0Q00';
WITH SimpleRecursive(father, code, childnum, aqty, bqty, sqty , SubLevel)
AS
(SELECT a.father, a.code, a.childnum, a.quantity, b.Qauntity, (a.quantity*b.Qauntity/cast(1 as numeric(19,6))), 1 -- Felder müssen typgleich sein
FROM itt1 a inner join oitt b on a.father = b.code
WHERE a.code = @itr
UNION ALL
SELECT p.father, p.code, p.childnum, p.Quantity, q.Qauntity, (p.Quantity*q.Qauntity/a.sqty), SubLevel + 1
FROM oitt q inner join itt1 p on q.code = p.code INNER JOIN SimpleRecursive A ON A.father = q.code
)
select * from SimpleRecursive
go
-- Auflösung nach unten
-- sqty benötigte Menge des untergeordneten Teiles
declare @itr nvarchar(20)
set @itr = 'PR000034132';
WITH SimpleRecursive(father, code, childnum, aqty, bqty, sqty , SubLevel)
AS
(SELECT a.father, a.code, a.childnum, a.quantity, b.Qauntity, (a.quantity*b.Qauntity*cast(1 as numeric(19,6))), 1 -- Felder müssen typgleich sein
FROM itt1 a inner join oitt b on a.father = b.code
WHERE b.code = @itr
UNION ALL
SELECT p.father, p.code, p.childnum, p.Quantity, q.Qauntity, (p.Quantity*q.Qauntity*a.sqty), SubLevel + 1
FROM oitt q inner join itt1 p on q.code = p.father INNER JOIN SimpleRecursive A ON A.code = q.code
)
select * from SimpleRecursive
go
Viel Erfolg.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
99 | |
11 | |
11 | |
6 | |
6 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.