Doppelte Einträge nach bestimmtem Kriterium unterdrücken

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Grüne_Wiese_1900
Beiträge: 2
Registriert: Di, 27.01.2015 15:20

Doppelte Einträge nach bestimmtem Kriterium unterdrücken

Beitrag von Grüne_Wiese_1900 »

Hallo,

ich versuche gerade, eine großes Projekt von Calc nach Base umzuziehen. Dabei habe ich zwei Probleme mit den Dupletten. Das erste werde ich hier schildern, dass zweite in einem Extra Beitrag. viewtopic.php?f=8&t=65295

Kern der Datenbank ist eine Tabelle, welche vereinfacht wie folgt ausschaut:

Code: Alles auswählen

| ID | Begriff | Quelle | Kommentar |
|----|---------|--------|-----------|
| 1  | Schiff  | A      | xyz       |
| 2  | Esel    | A      | abc       |
| 3  | Schiff  | B      | hjk       |
| 4  | Fisch   | B      | asf       |
| 5  | Schiff  | A      |           |
Moderation: Zur übersichtlichen Darstellung der Tabelle im Text [​code][/code] Tags gesetzt.—lorbass, Moderator

In diesem Beispiel sind es nur 5 Einträge, in der eigentlichen Tabelle jedoch einige tausend Einträge.
Es geht darum eine Abfrage zu bauen, bei welcher, im Feld "Begriff" der selbe Eintrag nur noch einmal enthalten ist. Dabei z.B. Quelle A bevorzugt zu behalten werden. Außerdem sollen die anderen Felder auch erhalten werden. In Calc war das ganz einfach, da habe ich die Tabelle nach "Quelle" aufsteigend sortiert und dann die Spalte "Begriff" selektiert und dann mit dem eingebauten Filter Duplikate entfernt, dadurch wurde A bevorzugt behalten.

Ich hab schon verschiedene Versuche mit durch.
1. "Select Distinct" funktionierte, im Bezug auf das Feld Begriff, jedoch sind dann die anderen Felder ID, Quelle und Kommentar weg.
2. "Group By" mit "Begriff" folgenden Fehler SQL-Status: 37000 Fehler-Code: -67
Not in aggregate function or group by clause: org.hsqldb.Expression@5c3ccdf1 in statement [SELECT "ID", "Begriff", "Quelle", "Kommentar" FROM "Tabelle1" GROUP BY "Begriff"]
3. Diverse andere Versuche mit der Hilfe von Google sind auch im Sande verlaufen.

Ich wäre über jede Hilfe sehr dankbar.
Viele Grüße
madmatmed
**
Beiträge: 32
Registriert: Do, 15.01.2015 09:26

Re: Doppelte Einträge nach bestimmtem Kriterium unterdrücken

Beitrag von madmatmed »

Hallo Gelbe Wiese 8)

wenn du bei deiner Beispiel-Tabelle nach Begriff sortierst, dann gibt es ja 3 Zeilen:

Schiff
Esel
Fisch

Jetzt nenne mir mal bitte die richtige Quelle zu Schiff!?

Das ist ja nicht eindeutig möglich, weil einmal ist die Quelle A, einmal ist die Quelle B.

Deswegen funktioniert deine Abfrage nicht.

Jetzt haste die Fehlermeldung:
"Not in aggregate function or group by clause"....

Du hast [rein technisch] gesehen 2 Möglichkeiten. Du packst die Quelle z.B. in eine Aggregatfunktion (MIN, MAX etc.), dann zeigt er dir im Fall vom MAX die "größte" [letzte] Quelle zu dem Begrriff an oder du gruppierst zusätzlich noch nach Quelle...
Antworten