fossybeer
Mitglied
Moin zusammen!
In meiner Datenbank sind Artikel und Unterartikel (und Unterunterartikel, aber max. 4 Ebenen) gespeichert. Nun soll ich mit Reporting-Services eine Abfrage erstellen, die ALLE einem Ausgangs-Artikel (z.B. Nr. 123) zugehörigen Unterartikel auswirft. Das geht gut mit:
Dies zeigt mir den Unterartikel zum Artikel 123. Wunderbar.
ABER: Das ganze funktioniert nicht mehr, wenn die 2. SELECT-Anweisung mehr als ein Ergebnis hat. Dies kommt vor, wenn der übergeordnete Artikel aus mehreren Unterartikel besteht (z.B. Artikel = Fahrrad, Unterartikel = Lenker, Räder, Klingel etc.). Kann ich im Query irgendwie das gesamte Result-Set des 2. Selects abarbeiten?
Gibt es vielleicht andere Ansätze für die Problemlösung?
PS Die 4 möglichen Ebenen behandle ich alle wie oben - je mehr Ebenen, desto mehr subselects. Die angezeigten Ebenen kann der Nutzer durch den Parameter @Ebenen [1..4] bestimmen
In meiner Datenbank sind Artikel und Unterartikel (und Unterunterartikel, aber max. 4 Ebenen) gespeichert. Nun soll ich mit Reporting-Services eine Abfrage erstellen, die ALLE einem Ausgangs-Artikel (z.B. Nr. 123) zugehörigen Unterartikel auswirft. Das geht gut mit:
Code:
SELECT Artikelname FROM Artikelliste WHERE Artikelnummer =
(SELECT Unterartikelnummer FROM Artikelliste WHERE Artikelnummer = 123 )
ABER: Das ganze funktioniert nicht mehr, wenn die 2. SELECT-Anweisung mehr als ein Ergebnis hat. Dies kommt vor, wenn der übergeordnete Artikel aus mehreren Unterartikel besteht (z.B. Artikel = Fahrrad, Unterartikel = Lenker, Räder, Klingel etc.). Kann ich im Query irgendwie das gesamte Result-Set des 2. Selects abarbeiten?
Gibt es vielleicht andere Ansätze für die Problemlösung?
PS Die 4 möglichen Ebenen behandle ich alle wie oben - je mehr Ebenen, desto mehr subselects. Die angezeigten Ebenen kann der Nutzer durch den Parameter @Ebenen [1..4] bestimmen
Code:
SELECT case when @Ebenen>3 then Artikelname else NULL end
FROM Artikelliste WHERE Artikelnummer =
(SELECT Unterartikelnummer FROM Artikelliste WHERE Artikelnummer =
(SELECT Unterartikelnummer FROM Artikelliste WHERE Artikelnummer =
(SELECT Unterartikelnummer FROM Artikelliste WHERE Artikelnummer = 123 )))