Supportnet Computer
Planet of Tech

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.

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 !!!

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 ... ;)

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!!!

Antwort 5 von firefox

Brauch nicht zu hoch sein.

Einfach statt
SELECT * FROM bla

SELET DISTINCT * FROM bla

- das wars ;)