Access Doppelte Einträge bei Abfrage

4 Antworten

Das Problem mit dem Kombifeld kannst du lösen, indem du in den Eigenschaften des Kombifeldes die Datensatzherkunft änderst. Möglicherweise musst du hier einige Felder gruppieren oder rausschmeissen. Ist schwierig zu beurteilen, wenn man die Datenbank nicht vor Augen hat.

Ergänzend zu meinem ersten Vorschlag (den Du Dir gut merken solltest, weil der oft gebraucht wird): Du gibst im select nur die Felder an, die Du nur einmal haben möchtest und ergänzt den select am Schluss mit:

group by feld1, feld2 usw.

Wichtig ist, dass alle Felder des select in der group by aufgezählt werden müssen. Den select kannst dann mit Funktionen erweitern: count(stern) zeigt an wie oft, sum(feld) bildet die Summe eines numerischen Feldes (muss als not null definiert sein) oder max(datum) zeigt das letzte Datum an. Für stern musst Du das Sternchen auf der Tastatur benutzen, hier lässt sich das nicht schreiben.

Solche Probleme kannst Du mit einer verschachtelten Abfrage lösen, einem sog. Subselect.

Zunächst stellst in einem select den Primärschlüssel aller betroffenen Fälle her, egal wie oft der vorkommt. Diesen select verwendest Du jetzt im Hauptselect als Subselect (steht in Klammern):

select feld1, feld2, usw from tabelle where prim in (select prim from tebelle where ...)

Der Subselect erstellt intern eine Tabelle der Primärschlüssel aller betroffenen Sätze, der Hauptselect prüft nur, ob dieser Schlüssel in der internen Tabelle vorhanden ist oder nicht, egal wie oft. wenn der Primärschlüssel mehrteilig ist, musst Du diesen in Klammern setzen:

where (prim1, prim2) in (select prim1, prim2 from...)

Es empfieht sich, den Subselect zuerst zu erstellen und vorab zu prüfen.