Abfrage von Daten aus unterschiedlichen Tabellen
Ich würde ganz gerne Daten aus mehreren Tabellen mit Bedingungen anzeigen lassen.
Hallo zusammen,
ich bin derzeit in ACCESS dabei eine Maschinenliste in unserem Unternehmen zu pflegen. Wir haben die Daten aus SAP und möchten diese in ACCESS einfügen und ausgeben bzw. filtern. Warum wir das nicht in SAP machen? Ganz einfach, es haben nicht alle die benötigten Zugriffsrechte und man muss da auch mehrere Formulare aufrufen um an die gewünschten Informationen zu kommen.
Ich habe nun mehrere Tabellen erstellt, mir würde aber wahrscheinlich schon die Hilfe anhand diesem Beispiel reichen!
Tabelle 1: Maschinen
> MaschinenNr
> MaschinenBezeichnung
> StandortNr
Tabelle 2: Standorte
> Werk
> StandortNr
> StandortBezeichnung
In SAP ist es nun so, dass ich bei den Maschinen Eingenschaften nur die StandNr angezeigt bekomme, nicht aber die Bezeichnung.
Nun möchte ich mir einen Bericht erzeugen lassen, der mir folgende Sachen anzeigt:
> MaschinenNr
> MaschinenBezeichnung
> StandortNr
> StandortBezeichnung
In Access-Schulungsunterlagen (leider nicht meine) die ich hier liegen habe, steht irgendwas von Fremdschlüssel. Leider sind die Unterlagen auch mit Access 2000 erstellt, und ich arbeite hier mit 2010.
Hallo zusammen,
ich bin derzeit in ACCESS dabei eine Maschinenliste in unserem Unternehmen zu pflegen. Wir haben die Daten aus SAP und möchten diese in ACCESS einfügen und ausgeben bzw. filtern. Warum wir das nicht in SAP machen? Ganz einfach, es haben nicht alle die benötigten Zugriffsrechte und man muss da auch mehrere Formulare aufrufen um an die gewünschten Informationen zu kommen.
Ich habe nun mehrere Tabellen erstellt, mir würde aber wahrscheinlich schon die Hilfe anhand diesem Beispiel reichen!
Tabelle 1: Maschinen
> MaschinenNr
> MaschinenBezeichnung
> StandortNr
Tabelle 2: Standorte
> Werk
> StandortNr
> StandortBezeichnung
In SAP ist es nun so, dass ich bei den Maschinen Eingenschaften nur die StandNr angezeigt bekomme, nicht aber die Bezeichnung.
Nun möchte ich mir einen Bericht erzeugen lassen, der mir folgende Sachen anzeigt:
> MaschinenNr
> MaschinenBezeichnung
> StandortNr
> StandortBezeichnung
In Access-Schulungsunterlagen (leider nicht meine) die ich hier liegen habe, steht irgendwas von Fremdschlüssel. Leider sind die Unterlagen auch mit Access 2000 erstellt, und ich arbeite hier mit 2010.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 162927
Url: https://administrator.de/contentid/162927
Ausgedruckt am: 26.11.2024 um 02:11 Uhr
8 Kommentare
Neuester Kommentar
Hi,
da erstellst du dir eine Abfrage.
In dieser Abfrage brauchst du einen INNER JOIN.
Sieht dann ca. so aus:
SELECT maschine.*, standort.* from maschine INNER JOIN standort ON (standort.maschinennr = maschine.maschinennr AND standort.standortnr = maschine.standortnr)
Die Abfrage nimmst du dann als Quelle für den Bericht.
Gruss
Michael
da erstellst du dir eine Abfrage.
In dieser Abfrage brauchst du einen INNER JOIN.
Sieht dann ca. so aus:
SELECT maschine.*, standort.* from maschine INNER JOIN standort ON (standort.maschinennr = maschine.maschinennr AND standort.standortnr = maschine.standortnr)
Die Abfrage nimmst du dann als Quelle für den Bericht.
Gruss
Michael
Du hast doch oben in dem ersten Post geschrieben, dass du die Werte in einer Tabelle getrennt hast.
In der Abfrage werden die Tabellen Maschinen und Standorte mit einander verknüpft. Mit dem ON werden die Datensätze zusammengeführt bei denen die Maschinennummer und die Standortnummer in beiden Tabellen gleich ist.
Du brauchst diese zwei Tabellen wie du oben beschrieben hast. Über den INNER JOIN ziehst du diese zwei Tabellen zu einer zusammen.
Gruss
Michael
In der Abfrage werden die Tabellen Maschinen und Standorte mit einander verknüpft. Mit dem ON werden die Datensätze zusammengeführt bei denen die Maschinennummer und die Standortnummer in beiden Tabellen gleich ist.
Du brauchst diese zwei Tabellen wie du oben beschrieben hast. Über den INNER JOIN ziehst du diese zwei Tabellen zu einer zusammen.
Gruss
Michael
Moin JohannesK,
willkommen im Forum.
bastlas Ansatz ist vollkommen korrekt und ausreichend, du brauchst weder eine Zwischenabfrage noch zwei Tabellen zu einer zusammenfassen.
Auch wenn ich von SAP soviel halte wie von Thunfischpizza aus der Dose - eigentlich sollte auch bei denen ausgeschlossen sein,
dass sich in der Maschinen-Tabelle Datensätze mit einer StandortNr befinden, die nicht in der Standort-Stammdaten gefunden wird.
Sollte das doch erlaubt oder zumindest Realität sein, dann halt statt des INNER JOINs einen LEFT JOIN.
Grüße
Biber
willkommen im Forum.
bastlas Ansatz ist vollkommen korrekt und ausreichend, du brauchst weder eine Zwischenabfrage noch zwei Tabellen zu einer zusammenfassen.
SELECT m.MaschinenNr, m.MaschinenBezeichnung
, m.StandortNr , s.StandortBezeichnung
FROM Maschinen m, Standorte s
WHERE m.StandortNr = s.StandortNr
Auch wenn ich von SAP soviel halte wie von Thunfischpizza aus der Dose - eigentlich sollte auch bei denen ausgeschlossen sein,
dass sich in der Maschinen-Tabelle Datensätze mit einer StandortNr befinden, die nicht in der Standort-Stammdaten gefunden wird.
Sollte das doch erlaubt oder zumindest Realität sein, dann halt statt des INNER JOINs einen LEFT JOIN.
SELECT m.MaschinenNr , m.MaschinenBezeichnung
, m.StandortNr , s.StandortBezeichnung
FROM Maschinen m LEFT JOIN Standorte s ON m.StandortNr = s.StandortNr
Grüße
Biber
Moin JohannesK,
ich hatte doch in meinem letzten Kommentar zwei Statements zusammenphantasiert.
Eines mit dem INNER JOIN für den optimistischen Fall, dass SAP inzwischen mehr Grips hat als die Thunfischpizza aus der Dose,
und eines mit einem LEFT JOIN für den Fall, dass die immer noch so arbeiten wie wir es alle seit Erfindung der Alufolie kennen.
Hast du denn die LEFT-JOIN-Variante auch ausprobiert?
Grüße
Biber
P.S.
ich hatte doch in meinem letzten Kommentar zwei Statements zusammenphantasiert.
Eines mit dem INNER JOIN für den optimistischen Fall, dass SAP inzwischen mehr Grips hat als die Thunfischpizza aus der Dose,
und eines mit einem LEFT JOIN für den Fall, dass die immer noch so arbeiten wie wir es alle seit Erfindung der Alufolie kennen.
Hast du denn die LEFT-JOIN-Variante auch ausprobiert?
Grüße
Biber
P.S.
"Da kann es aber eigentlich nicht mehr vorkommen, das es leere Felder gibt."
Dieses "eigentlich" ist es ja, was die Anzahl der Beschäftigten in der IT-Branche verursacht...