Einzelnen Beitrag anzeigen

Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: Ausgabe bei doppelten daten

  Alt 10. Aug 2004, 14:42
Hallo,

Zitat von Access-Hilfe:
DISTINCT

Verwenden Sie DISTINCT, wenn Datensätze, die in den ausgewählten Feldern mehrfach vorkommende Daten enthalten, ausgelassen werden sollen. Die Werte für alle in der Anweisung SELECT aufgeführten Felder müssen eindeutig sein, damit sie in das Ergebnis der Abfrage aufgenommen werden. Mehrere in der Tabelle "Personal" aufgeführte Angestellte können z.B. denselben Nachnamen haben. Wenn zwei Datensätze den Wert "Schmidt" im Feld "Nachname" enthalten, gibt die folgende SQL-Anweisung nur einen der Datensätze zurück:

SELECT DISTINCT Nachname FROM Personal

Wenn Sie DISTINCT nicht angeben, gibt diese Abfrage beide Datensätze mit "Schmidt" zurück.

Wenn die SELECT-Klausel mehrere Felder enthält, muß die Kombination von Werten aus allen Feldern eindeutig sein, damit ein bestimmter Datensatz in das Ergebnis aufgenommen wird.

Das Ergebnis einer Abfrage, die DISTINCT anwendet, ist nicht aktualisierbar, und von anderen Benutzern nachträglich vorgenommene Änderungen werden nicht berücksichtigt.

Die Verwendung von DISTINCT ist äquivalent zur Einstellung der Eigenschaft "KeineDuplikate" (UniqueValues) auf "Ja" im Eigenschaftenfenster der Abfrage in der Entwurfsansicht einer
Abfrage.


DISTINCTROW

Verwenden Sie DISTINCTROW, wenn Daten aus mehrfach auftretenden Datensätzen (und nicht nur aus mehrfach auftretenden Feldern) nur einmal in das Ergebnis der Abfrage
aufgenommen werden sollen. Sie können z.B. eine Abfrage erstellen, in der die Tabellen "Kunden" und "Bestellungen" über das Feld "Kunden-Nr" verknüpft werden. Die Tabelle "Kunden" enthält keine mehrfachen Einträge für das Feld "Kunden-Nr", im Gegensatz zur Tabelle "Bestellungen", in der für einige Kunden mehrere Bestellungen eingetragen sind.
Die folgende SQL-Anweisung zeigt, wie Sie mit DISTINCTROW eine Liste der Firmen erstellen können, die mindestens eine Bestellung erteilt haben, ohne Details zu den Bestellungen in die Liste aufzunehmen:

SELECT DISTINCTROW Firma
FROM Kunden INNER JOIN Bestellungen ON Kunden.[Kunden-Nr] = Bestellungen.[Kunden-Nr]
ORDER BY Firma;

Wenn Sie DISTINCTROW nicht angeben, erstellt diese Abfrage mehrere Zeilen für alle Firmen mit mehreren Bestellungen.

DISTINCTROW ist nur dann wirksam, wenn Sie Felder nicht aus allen, sondern nur aus einigen der in der Abfrage verwendeten Tabellen auswählen. DISTINCTROW wird ignoriert, wenn die Abfrage nur eine Tabelle umfaßt.

Die Verwendung von DISTINCTROW ist äquivalent zur Einstellung der Eigenschaft "EindeutigeDatensätze" (UniqueRecords) auf "Ja" (dem Standardwert) im Eigenschaftenfenster in der Entwurfsansicht einer Abfrage.
  Mit Zitat antworten Zitat