MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 07.11.2017, 15:43   #1
rschoenemann
Neuer Benutzer
Neuer Benutzer
Tipp T-SQL : MSSQL 2016 - mehrfach LookUp in eine Tabelle

Hallo Zusammen,
ich hoffe ich bin im richtigen Forum und jemand hat eine zündende Idee zu meinem Problem. Ansonsten nehme ich Hinweise, wo ich besser aufgehoben bin, gerne an.

Ich habe zwei Tabellen, die sich wie folgt darstellen:

Tbl_Produkt
ProduktID Produktname Produkttyp Produktart Status
1 Astra 60001 551 7551
2 Gerolsteiner 60002 550 7551
3 Krombacher 60001 551 7552
4 Volvic 60002 550 7551
5 Fritzcola 60003 550 7551
6 CocaCola 60003 550 7552


Tbl_Enum
EnumItemID EnumItemValue EnumItemName
500001 60001 Bier
500002 60002 Wasser
500003 550 alkohlfrei
500004 551 alkoholisch
500005 7551 aktiv
500006 7552 inaktiv
500007 60003 Brause


Hiermit Frage ich meine Spalten ab und das funktioniert auch bestens.

Select p.ProduktId, p.Produktname, Typ.EnumItemName as ProdTyp, Art.EnumItemName as ProdArt, s.EnumItemName as Stati

FROM [Tbl_produkte] p
left Join Tbl_Enum Typ on Typ.EnumItemValue = p.Produkttyp
left Join Tbl_Enum Art on Art.EnumItemValue = p.Produktart
left Join Tbl_Enum s on s.EnumItemValue = p.Status


Meine Frage ist nun, ob es einen anderen (Join, mapping, routine, function???) Weg gibt als

left Join .... on ... = ...

In diesem Bsp. habe ich nur 3 Spalten aus Tbl_Produkt die ich mit Tbl_Enum JOINe, allerdings sind es in Wirklichkeit eine ganze menge mehr > 35 die ich JOINen muss.
Da es immer die selbe Tabelle ist, hoffe ich auf einen übersichtlicheren Weg.

Ich bin für jeden Gedanken oder Hinweis dankbar.

neblige Grüsse aus Hamburg
rschoenemann ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.11.2017, 17:22   #2
hcscherzer
MOF Guru
MOF Guru
Standard

Willkommen im Forum.

Das Problem, das ich da sehe, ist folgendes:
in der Enum Tabelle werden Attribute zusammengeworfen, die untereinander nicht vergleichbar sind.
Bier, Wasser und Brause sind Sorten
aktiv und inaktiv sind inhaltliche Attribute
Alk und nicht-alk sind wiederum andere Eigenschaften.

Für jede der vergleichbaren Attribute solltest Du eine extra Tabelle aufbauen.
Und diese mit dem jeweils passenden Feld in der Produkte Tabelle verbinden.

Wenn für jedes Attribut in der Produkte-Tabelle ein Pendant in der zugehörigen Master-Tabelle vorhanden ist, brauchst Du für jede Sorte von Zuordnung nur noch einen - und dann auch einen INNER - JOIN.


Übrigens ist der Plural von Status ebenfalls Status (aber mit langem 'u' - U-Deklination), aber das ist hier nicht wirklich wichtig.

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.

Geändert von hcscherzer (07.11.2017 um 17:26 Uhr).
hcscherzer ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.11.2017, 09:46   #3
rschoenemann
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo hcscherzer,
danke für Deine Antwort.
Habe ich das richtig verstanden, dass ich 3 weitere Tabellen (in diesem Fall Tbl_Produkttyp, Tbl_Produktart und Tbl_Status) erstellen soll?
Wenn dem so ist, habe ich 3 zusätzliche Tabellen die ich jeweils zur Tbl_Produkt JOINen (aktuell sind es auch 3 JOINs) müsste oder stehe ich gerade auf dem Schlauch?

LG
rschoenemann ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.11.2017, 10:53   #4
hcscherzer
MOF Guru
MOF Guru
Standard

Nicht drei weitere sondern drei statt der einen.
Sicherlich kann man es auch so machen, wie Du mit der einen aber ich finde es übersichtlicher, wenn die Attribute, die inhaltlich zusammengehören, auch zusammen gespeichert sind.
Ob Du eine Tabelle dreimal verbindest oder drei Tabellen je einmal, bleibt vom Aufwand ziemlich gleich.

Was ich allerdings nicht verstehe, ist, wenn Du in #1 schreibst

Zitat:

in Wirklichkeit eine ganze menge mehr > 35 die ich JOINen muss.

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.11.2017, 10:41   #5
rschoenemann
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Danke Dir, ich komme um den Weg wohl nicht drumherum, schade.

In der Tabelle Produkt habe ich ca. 35 Spalten mit weiteren Schlüsselbegriffen, die ich zur Tbl_Enum Joinen muss.
Die jeweiligen Spalten enthalten ihre eigenen Bereiche der SchlüsselIds und kommen auch nur in dieser Spalte vor.


Vielen Dank noch einmal und eine schöne Restwoche noch.
VG
rschoenemann ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.11.2017, 12:55   #6
hcscherzer
MOF Guru
MOF Guru
Standard

Zitat:

ca. 35 Spalten mit weiteren Schlüsselbegriffen

Schwer vorstellbar, dass es so viele unterschiedliche Gruppen von Attributen gibt beim Erfassen von Getränken.

Sammelst Du etwa Kronkorken?

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:19 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.