Supportnet / Forum / Datenbanken
Access: Abfrage alle DS anzeigen (auch die ohne Detail-DS)
Frage
Hallo,
ich habe eine DB mit drei Tabellen, die über eine ID-Nr. miteinander verbunden sind. Die erste Tabelle enthält Kunden-Stammdaten, die beiden anderen Tabellen Daten je nachdem, was es für ein Kunde ist. Also: Tabelle 1 enthält Name und Adresse, Tabelle 2 Bestellungen und Tabelle 3 Retouren. Nun benötige ich eine Abfrage, die mir ALLE Datensätze aus Tabelle 1 anzeigt und - sofern vorhanden - auch die Detaildatensätze aus den Tabellen 2 und 3. Es sollen also auch dann die Datensätze aus Tabelle 1 angezeigt werden, wenn in Tabelle 2 und/oder 3 keine Daten zum Hauptdatensatz vorhanden sind.
Kann mir jemand helfen, wahrscheinlich ist die Lösung (wieder) totat simpel ... :-)
Vielen Dank im Voraus
Antwort 1 von firefox
Das Stichwort heißt: LEFT JOIN.
Am einfachsten im Abfragedesigner einer Verknüpfung auswählen -> Rechtscklick -> Verknüpfungseigenschafften und entsprechendes auswählen.
Am einfachsten im Abfragedesigner einer Verknüpfung auswählen -> Rechtscklick -> Verknüpfungseigenschafften und entsprechendes auswählen.
Antwort 2 von access-rookie
Vielen Dank für die schnelle Antwort, firefox !!! Ich hab´s gleich probiert und die Verknüpfungseigenschaften auf "2" gesetzt. Es funktioniert insofern, dass nun alle DS angezeigt werden, für die auch keine Detail-DS vorhanden sind. Aber: wenn in Tabelle 2 fünf Detail-DS vorhanden sind, wird - wenn in Tabelle 3 nur EIN Detail-DS steht - der EINE Detail-DS der Tabelle 3 dann fünfmal angezeigt. Gibt´s dafür auch noch eine Lösung?
Vielen, vielen Dank !!!
Vielen, vielen Dank !!!
Antwort 3 von firefox
Bei Access am einfachsten mit DISTINCT. Hier werden automatisch alle doppelten Werte bei der Ausgabe gefilter, oder händisch mit Gruppierung.
Sinnvoller ist es natürlich die Abfrage so umzubauen, das dies gar nicht erst vorkommt, aber auch wesentlich aufweniger ... ;)
Sinnvoller ist es natürlich die Abfrage so umzubauen, das dies gar nicht erst vorkommt, aber auch wesentlich aufweniger ... ;)
Antwort 4 von access-rookie
Ok, das ist dann doch zu hoch für mich mit dem distinct ...
Trotzdem vielen Dank für Deine Hilfe, firefox!!!
Trotzdem vielen Dank für Deine Hilfe, firefox!!!
Antwort 5 von firefox
Brauch nicht zu hoch sein.
Einfach statt
SELECT * FROM bla
SELET DISTINCT * FROM bla
- das wars ;)
Einfach statt
SELECT * FROM bla
SELET DISTINCT * FROM bla
- das wars ;)