Doppelte Einträge nach bestimmtem Kriterium unterdrücken
Verfasst: Di, 27.01.2015 15:47
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:
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
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 | |
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