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-Key: 143297

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

Printed on: April 16, 2024 at 17:04 o'clock

Member: etnobommel1989
etnobommel1989 May 21, 2010 at 07:30:18 (UTC)
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
Member: problemsolver
problemsolver May 21, 2010 at 07:51:50 (UTC)
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
Member: etnobommel1989
etnobommel1989 May 21, 2010 at 08:50:19 (UTC)
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
Member: problemsolver
problemsolver May 21, 2010 at 14:38:58 (UTC)
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