Spezielle Abfrage über zwei Tabellen
An alle Datenbankprofis,
ich habe folgende Tabellen
Artikel mit den Spalten No,Name,Kategorie1,Kategorie2,Kategorie3
Kategorieren mit den Spalten No,Kat1,Kat2,Kat3,Bezeichnung
ich möchte ein Abfrage über beide Tabellen machen und die Kategorie1 bis Kategorie3 mit der jeweiligen Bezeichnung aus der Kategorieren-Tabelle anzeigen.
Hat jemand dafür eine Idee. Ist Ms SQL Server 2005.
Achja die Tabellen lassen sich leider nicht abändern.
Gruß
Michael-s
ich habe folgende Tabellen
Artikel mit den Spalten No,Name,Kategorie1,Kategorie2,Kategorie3
Kategorieren mit den Spalten No,Kat1,Kat2,Kat3,Bezeichnung
ich möchte ein Abfrage über beide Tabellen machen und die Kategorie1 bis Kategorie3 mit der jeweiligen Bezeichnung aus der Kategorieren-Tabelle anzeigen.
Hat jemand dafür eine Idee. Ist Ms SQL Server 2005.
Achja die Tabellen lassen sich leider nicht abändern.
Gruß
Michael-s
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 104629
Url: https://administrator.de/contentid/104629
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
6 Kommentare
Neuester Kommentar
Welches sind die Schlüsselfelder für die Verknüpfung?
Ok, ersetzen wir mal Unwissenheit durch Annahme. Das ist immer der erste Schritt in Richtung Fehler.
Wir nehmen an: Artikel.Kategorie1..3 sind mit Kategorieren.No verknüpft.
Dann bräuchten wir hier nur noch 3 joins und fertig.
Syntax bitte im Handbuch unter select...join nachschlagen.
Gruß Pitti
Ok, ersetzen wir mal Unwissenheit durch Annahme. Das ist immer der erste Schritt in Richtung Fehler.
Wir nehmen an: Artikel.Kategorie1..3 sind mit Kategorieren.No verknüpft.
Dann bräuchten wir hier nur noch 3 joins und fertig.
Syntax bitte im Handbuch unter select...join nachschlagen.
Gruß Pitti
nochmal zum Verständnis:
select * from artikel
left join kategorie on artikel.Kategorie1=kategorie.Kat1, artikel.Kategrorie2=kategorie.Kat2, artikel.Kategorie3=kategorie.Kat3
funktioniert dann deshalb nicht, weil artikel.kategorie1 in kategorie.kat3 oder in kategorie.kat2 oder kategorie.kat1 stehen kann?
select * from artikel
left join kategorie on artikel.Kategorie1=kategorie.Kat1, artikel.Kategrorie2=kategorie.Kat2, artikel.Kategorie3=kategorie.Kat3
funktioniert dann deshalb nicht, weil artikel.kategorie1 in kategorie.kat3 oder in kategorie.kat2 oder kategorie.kat1 stehen kann?
Ähm ja...
ich gehe davon aus, dass ein Hauptziel des Tabellendesigns die Sicherstellung der Nichtinterpretierbarkeit bei Industriespionage gewesen ist.
Ziel erreicht.
Falls mal eine der Kategorie-Bezeichnungen nicht referenziert werden kann, fehlt der ganze Satz ( ein LEFT JOIN ist ja hier kaum möglich).
P.S. Ich weiß nicht, wer das designed hat oder gegen wen, aber - bei dieser Tabellenstruktur kamen zwei Erinnerungen aus meiner Jugend wieder hoch:
Auch da bin ich eigentlich tolerant.
Grüße und viel Glück
Biber
ich gehe davon aus, dass ein Hauptziel des Tabellendesigns die Sicherstellung der Nichtinterpretierbarkeit bei Industriespionage gewesen ist.
Ziel erreicht.
SELECT Artikel.Name,
ka11.Bezeichnung as Kat1Bez,
kat12.Bezeichnung as Kat2Bez,
kat123.Bezeichnung as Kat3Bez
FROM Artikel,
kategorie as Kat1,
kategorie as Kat12,
kategorie as Kat123,
Where
Artikel.kategorie1 = kat1.kat1
and artikel.kategorie2 <> kat1.kat2
and artikel.kategorie3 <>kat1.kat3
AND Artikel.kategorie1 = kat12.kat1
and artikel.kategorie2 = kat12.kat2
and artikel.kategorie3 <>kat12.kat3
AND Artikel.kategorie1 = kat123.kat1
and artikel.kategorie2 = kat123.kat2
and artikel.kategorie3 = kat123.kat3
Falls mal eine der Kategorie-Bezeichnungen nicht referenziert werden kann, fehlt der ganze Satz ( ein LEFT JOIN ist ja hier kaum möglich).
P.S. Ich weiß nicht, wer das designed hat oder gegen wen, aber - bei dieser Tabellenstruktur kamen zwei Erinnerungen aus meiner Jugend wieder hoch:
- Ja, auch wir hatten früher einen "Legalize it!"-Aufkleber auf der WG-Tür
- Gerüchten zufolge werden auch heute noch, vor allem im ländlichen Raum, Leute aus weit geringeren Anlässen gepfählt oder gevierteilt.
Auch da bin ich eigentlich tolerant.
Grüße und viel Glück
Biber