![]() |
Datenbank: ADS • Version: 6.11 • Zugriff über: mit ADAC auf DBF
"Doppelte" Datensätze ignorieren
Hallo DPler,
ich hänge ein wenig fest, obwohl ich die Suche bereits benutzt habe. So richtig finde ich keine Lösung oder habe Tomaten auf den Augen :pale: Ich habe eine Tabelle mit gut 80.000 Datensätzen, mit folgendem (verkürztem) Aufbau: ID, Firma1, Firma2, ..., Vorname, Nachname, ... Die ID kann mehrfach vorkommen, ist aber eindeutig für jede Firma. Ich versuche nun "doppelte" Datensätze zu filtern. Soll heißen, ich möchte nur einen Datensatz je Firma erhalten, die ich dann in eine separate Tabelle schreiben möchte. Verwende ich in der Abfrage "distinct", bringt das ja nichts, da durch Unterschiede in den Vor- und Nachnamen, die Sätze nicht doppelt sind. Und so erscheinen dann wieder alle Sätze. Wie mache ich es nun, daß ich von einer Firma genau einen Satz erhalte? |
Re: "Doppelte" Datensätze ignorieren
Durch Gruppieren.
BTW die bezeichnung ID suggeriert eigentlich eine Eindeutigkeit |
Re: "Doppelte" Datensätze ignorieren
Hallo mkinzler,
das ist richtig, die Bezeichnung ID suggeriert eine Eindeutigkeit, wird aber jeweils einer Firma zugeordnet und kann leider mehrfach vorkommen. Liegt auch nicht in meiner Verantwortung, da ich die Daten in der Form gestellt bekomme. Wenn ich nun mit "Group By ID" die Daten einer Firma zusammenfasse, wie exportiere ich dann nur jeweils einen Satz aus dieser Gruppe? Wobei es keine Rolle spielt, welcher Satz das ist. Meinetwegen jeweils der Erste. |
Re: "Doppelte" Datensätze ignorieren
Zitat:
|
Re: "Doppelte" Datensätze ignorieren
Hm, wenn ich nun folgendes versuche
SQL-Code:
dann bekomme ich weiterhin doppelte Datensätze :gruebel:
select min(id), firma1, firma2, vorname, nachname
from <tabelle> group by firma1, firma2, vorname, nachname |
Re: "Doppelte" Datensätze ignorieren
Gerade andersrum:
SQL-Code:
select id, min(firma1), min(firma2), min(vorname), min(nachname)
from <tabelle> group by id; |
Re: "Doppelte" Datensätze ignorieren
:shock: :wall: :mrgreen:
Danke mkinzler :thumb: |
Re: "Doppelte" Datensätze ignorieren
Zitat:
Besser: Es gibt eine Pseudo-Spalte namens Rowid:
SQL-Code:
create table #test(id integer, firma1 cichar(20), firma2 cichar(20), vorname cichar(20), nachname cichar(20));
insert into #test values(1,'f1','f2','Adam','Muster'); insert into #test values(1,'f123','f234','Max','Anderson'); insert into #test values(2,'firma','irgendwas','Hans','Wurst'); insert into #test values(2,'f','häh?','Adam','Franz'); insert into #test values(2,'f1','<leer>','Joe','Doe'); insert into #test values(3,'sinnvoll','sinnlos','Fritz','Fischer'); select * from #test where rowid in (select min(rowid) from #test group by id); |
Re: "Doppelte" Datensätze ignorieren
SQL-Code:
ginge dann doch auch..
select * from #test where rowid in (select distinct rowid from #test);
|
Re: "Doppelte" Datensätze ignorieren
Oops, ja, tückische Falle :shock: Thanks, Joachim :gruebel:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz