etnobommel1989
Goto Top

Abfrage, LEFT JOIN mit mehreren Tabellen

Version: Access 2000 Problem: Mehrere Tabellen mittels LEFT JOIN verknüpfen
Ausgangssituation: Tabelle?:Tabellenname--->Feldname1,Feldname2
Tabelle1: Inventarnummer--->Inventarnummer
Tabelle2: PC--->PC_ID,Inventarnummer, PC_Name, OS, HDD, RAM, Prozessor
Tabelle3:Monitor--->Monitor_ID,Inventarnummer, Größe, Art, Preis, Kaufdatum
Tabelle4:Drucker---->Drucker_ID,Inventarnummer, Art, Toner, Preis, Kaufdatum
Tabelle5:Switch--->Switch_ID, Inventarnummer, Preis, Kaufdatum

Hey Leute,

meine Frage dazu ist:

Wie kann ich Tabelle 2-5 mittels LEFT JOIN in Abhängigkeit von Tabelle 1 verknüpfen? Also ich will das jede Inventarnummer angezeigt wird, auch wenn die Inventarnummer noch nicht vergeben ist und kein Gerät diese Inventarnummer besitzt.
Falls dies nicht funktioniert würde ich mich freuen das Ihr mir das auch schreibt.

Mein Quelltext wie es vom Prinzip her sein soll:


SELECT [Inventarnummer].[Inventarnummer], [PC].[Inventarnummer], [Monitor].[Inventarnummer],Drucker.Inventarnummer, Switch.Inventarnummer (In die SELECT Anweisung soll noch mehr rein, dient nur als Beispiel)
FROM Inventarnummer
LEFT JOIN PC ON [Inventarnummer].[Inventarnummer]=[PC].[Inventarnummer]
LEFT JOIN Monitor ON [Inventarnummer].[Inventarnummer]=[Monitor].[Inventarnummer]
LEFT JOIN Drucker ON [Inventarnummer].[Inventarnummer]=[Drucker].[Inventarnummer]
LEFT JOIN Switch ON [Inventarnummer].[Inventarnummer]=[Switch].[Inventarnummer];

Irgendwie funzt des net, ich hab aber keinen Plan

Vielen Dank

Content-ID: 143297

Url: https://administrator.de/contentid/143297

Ausgedruckt am: 26.11.2024 um 03:11 Uhr

etnobommel1989
etnobommel1989 21.05.2010 um 09:30:18 Uhr
Goto Top
Gut habs jetzt selbst gelöst, hab ein paar Klammern vergessen

SELECT [Inventarnummer].[Inventarnummer], [PC].[Inventarnummer], [Monitor].[Inventarnummer],Drucker.Inventarnummer, Switch.Inventarnummer
FROM ((((Inventarnummer
LEFT JOIN PC ON [Inventarnummer].[Inventarnummer]=[PC].[Inventarnummer])
LEFT JOIN Monitor ON [Inventarnummer].[Inventarnummer]=[Monitor].[Inventarnummer])
LEFT JOIN Drucker ON [Inventarnummer].[Inventarnummer]=[Drucker].[Inventarnummer])
LEFT JOIN Switch ON [Inventarnummer].[Inventarnummer]=[Switch].[Inventarnummer]);

Aber trotzdem Danke
problemsolver
problemsolver 21.05.2010 um 09:51:50 Uhr
Goto Top
Hallo face-smile

schön, dass Du eine Lösung für Dich gefunden hast und diese hier mitteilst.
Aber deine Tabellen sind sicherlich noch verbesserungswürdig.

Ich kann Dir folgenden Link bei Wikipedia empfehlen:
http://de.wikipedia.org/wiki/Normalisierung_%28Datenbank%29

Bei Interesse einfach mal reinschauen!
Ansonsten weiter so!!! face-smile

Gruß

Makrus
etnobommel1989
etnobommel1989 21.05.2010 um 10:50:19 Uhr
Goto Top
Ja vielen Dank für deinen Link, aber glaub mir das Schema war vorher noch chaotischer und es ging nix zu realisieren. So wie es jetzt ist, ist es am Besten. Es ist bei uns auch beschissen das nicht jedes Gerät eine eigene Inventarnummer hat, sondern Monitor, PC, Drucker zu einer zusammengefasst werden. Hingegen haben größere Drucker, wie Netzwerkdrucker wiederum eine eigene Nummer. Aber dafür kann ich nix.Das hab ich mir nicht ausgedacht. Mir wurde nur gesagt ich soll das machen, aber wie ist egal, hauptsache es klappt.

Da wir vor kurzen, des mit der Normalisierung erst in der Schule gehabt haben, hab ich das bei dieser Datenbank so weit es ging angewendet, aber einfacher geht Sie jetzt wirklich nicht mehr. Glaub mir.
Am einfachsten wäre es gewesen wenn jedes Gerät eine eigene Nummer hätte.
Tja aber des hab ich nicht zu bestimmen. Bin hier nur Lehrling.


Trotzdem Danke
problemsolver
problemsolver 21.05.2010 um 16:38:58 Uhr
Goto Top
Gern geschehen,

ich könnte dir den Tipp geben, die Inventarnummer zu splitten. Dementsprechend würde für
das Komplettsystem mit allem drum und dran die Inventarnummer 12345 gelten.
Für die Einzelkomponenten dann 12345-1, 12345-2, 12345-3.

Neues Inventar würde man dann automatisch korrekt aufbauen. Somit könntest Du -mit anfänglichem Aufwand- dann trennen. Der einzige "Nachteil" ist, dass du kein rein Numerisches Feld mehr besitzt, dass du inkrementieren kannst....

Nur so als Anreiz... wie man es löst ist egal. Hauptsache es funktioniert.

Noch weiterhin viel Erfolg

Gruß

Markus