Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Dubletten filtern - Nur die Erste mit zugehöriger ID soll erhalten bleiben!

Frage Microsoft Microsoft Office

Mitglied: nickdaniela

nickdaniela (Level 1) - Jetzt verbinden

07.07.2009, aktualisiert 18:39 Uhr, 6090 Aufrufe, 14 Kommentare

Ein Hallo an alle,
ich hoffe, ihr könnt mir helfen: Ich möchte Dubletten aus einem großen Datenbestand filtern - ca. 50.000 Telefonnummern, Bestand ständig steigend.
Export in andere Programme ist möglich.
Die Problematik sieht folgendermaßen aus: Ich möchte, dass die jeweils erste Telefonnummer erhalten bleibt, aber samt der dazugehörigen ID-Nr.!
Beispiel:
1 123
2 123
3 456
4 123
5 789
6 123
7 456
Übrig bleiben sollte dann:
1 123
3 456
5 789
Wie kann ich das erreichen?
Ich würde mich sehr freuen, wenn jemand eine Lösung wüsste - egal ob mit Excel, Access + welchen Scripten...
LG von Dani
Mitglied: Biber
07.07.2009 um 18:49 Uhr
Moin nickdaniela,

willkommen im Forum.
  • hat denn Deine Telefonnummernliste noch mehr Nutzdaten (also Felder) außer dem Feld "telefonnummer"?
  • was ist denn diese ID? So ein automatisch von Access angebotener und leichtfertig angenommener Autowert?
  • und wofür um alles in der Wert brauchst Du den? Da hast du dann irgendwann ganz viele Duplikate in Deinen Telefonnummern...

Grüße
Biber
Bitte warten ..
Mitglied: nickdaniela
07.07.2009 um 19:07 Uhr
Hallo Biber,
die ID ist einfach eine fortlaufende Nummerierung + befindet sich zusammen mit den Telefonnummern + anderen Angaben in dem dem Programm Cobra Adress Plus.
Aus diesem Programm kann ich aber in jedes Office-Programm + viele Formate nur diese 2 Angaben filtern.
Das Problem ist folgendes: Die Kunden rufen an + für jeden Anruf wird ein Datensatz angelegt.
Wöchentlich soll dann die ganze Datenbank gefiltert + um die Dubletten bereinigt werden.
Anhand der ID-Nr. kann ich festlegen, welche Kunden in der vergangenen Woche angerufen haben. Diese sollen dann noch mal kontaktiert werden, aber nur, wenn sie nicht schon in der Vergangenheit kontaktiert wurden.
Deshalb brauche ich zur Festlegung die ID-Nr. + es darf jeweile nur der erste Kundenanruf erhalten bleiben, während alle anderen rausfliegen.
LG von Dani
Bitte warten ..
Mitglied: 80220
07.07.2009 um 19:23 Uhr
Besteht die Möglichkeit, die fortlaufende Numerierung auf eine konstante Stellenzahl, z. b. 3 zu bringen, möglichst mit führender "0"?

Also

001 123
002 123
003 456
004 123
005 789
006 123
007 456

Ich denke dabei an eine Vorsortierung mit sort
Bitte warten ..
Mitglied: Biber
07.07.2009 um 19:28 Uhr
Moin nickdaniela,

aber ich habe das richtig verstanden, dass
  • ihr auf die Datentabelle auch ganz normal per SQL zugreifen könnt
  • und auch Sätze gelöscht werden können/dürfen, ohne das diese Corba-Appz dadurch den Dienst verweigert?

Grüße
Biber
Bitte warten ..
Mitglied: nickdaniela
07.07.2009 um 19:35 Uhr
Hallo dumdideldum,
nein, leider ist es nicht möglich, Nullen bei der ID voranzustellen.

An Biber:
Die Antworten auf deine Fragen fallen mir etwas schwerer.
Also die Daten werden ja exportiert in Excel oder Access oder wo auch immer hin, wo die Lösung herbeigeführt werden kann + sie werden nicht zurück ins Cobra importiert, so dass mit den Daten eigentlich passieren kann, was will - auch gelöscht.
Und im Cobra verändert sich der Datenbestand ständig: Neue kommen hinzu, erledigte werden endgültig gelöscht. Deshalb muss diese Abfrage ja auch jede Woche aufs Neue durchgeführt werden, wobei wir nach längerer Zeit auch mal wieder ältere Kunden kontaktieren, die noch nicht endgültig erledigt werden konnten.
Mit SQL kenne ich mich leider nicht aus, aber ich glaube, dass es die Grundlage vom Cobra ist...
Bitte warten ..
Mitglied: 80220
07.07.2009 um 19:40 Uhr
Hallo, nickeldaniela,

nein, leider ist es nicht möglich, Nullen bei der ID voranzustellen.
Kannst du denn die ID wenigstens auf 3 Stellen bringen?
Bitte warten ..
Mitglied: nickdaniela
07.07.2009 um 19:52 Uhr
Also die ID ist mittlerweile durch ein paar Lücken sogar schon 6-stellig, aber sie fängt halt bei 1 an + die hat nur eine Stelle + kann auch nicht verändert werden.
Bitte warten ..
Mitglied: 80220
07.07.2009 um 19:56 Uhr
Dann ist ein einfaches Vorsortieren nach Stellen nicht möglich.
Vielleicht fällt Biber noch was Besseres zu SQL ein, damit kenne ich mich nicht aus.

Sonst gäbe es schon eine Lösung mit Batch, die aber mehrere Durchläufe erfordert.
Bitte warten ..
Mitglied: Biber
07.07.2009 um 20:00 Uhr
Moin nickdaniela,

mit Access (oder irgendetwas, das ein paar Brocken SQL versteht) so:

  • Daten in das Datenbanktool importieren z.b unter dem Tabellennamen "Telefon"
  • unterstellt, dass die ID "ID" heißt und das Feld mit der Telefonnummer "Telefonnummer"
  • eine neue Abfrage erzeugen und direkt als SQL eingeben
01.
Delete * 
02.
FROM Telefon  
03.
where ID not in (Select min(ID) from Telefon  group by telefonnummer);
Beispiel:
Würde ein "SELECT alles/Select * from telefon" folgendes liefern
ID	telefonnummer	name	ort 
1	123	name123	ort123 
2	123	name123	ort123 
3	234	name234	ort234 
4	234	name234	ort234 
5	444	name444	ort444
würden mit
01.
select * 
02.
FROM Telefon  
03.
where ID not in (Select min(ID) from Telefon  group by telefonnummer);
...diese Sätze gefunden.
ID	telefonnummer	name	ort 
2	123	name123	ort123 
4	234	name234	ort234
... bzw mit einem "DELETE * " statt "SELECT *" auch weggeknallt.

Grüße
Biber

<OT> @80220
Vielleicht fällt Biber noch was Besseres zu SQL ein..
Vielleicht konvertiert auch der Papst zum Katholizismus..
</OT>
Bitte warten ..
Mitglied: 80220
07.07.2009 um 20:33 Uhr
Edit: 08.07.09 23:51

Ich muss doch nicht mehr ganz dicht sein. Bastele hier eine funktionierende Lösung, ohne das wenigstens ein Kommentar oder ein Dankeschön kommt.

Script gelöscht
Bitte warten ..
Mitglied: nickdaniela
08.07.2009 um 23:44 Uhr
Hallo Biber,
könntest du mir helfen + eine exakte Schritt-für-Schritt-Anleitung schreiben?
Der Bekannte, der uns das Programm verkauft hat + auch dafür verantwortlich ist, hat seine Grenzen erreicht + weiß nicht mehr weiter.
Ich exportiere 2x aus dem Cobra in Excel oder Access (welches du willst): Und zwar nur die beiden Spalten ID + Telefonummer, wobei allerdings die Telefonnummer bei dem einen Export unter Name1 steht.
Das Ergebnis sollte aber sein, dass ID + alle Telefonnummern untereinander in 2 Spalten stehen + dann die Dublettensuche gemacht werden kann.
Nach der Dublettensuche sollen dann nur die Telefonnummern in einer Excel-Datei untereinander weg per E-Mail weitergeleitet werden.
Ich habe minimalste Access-Kenntnisse, die schon 100 Jahre alt sind, aber vielleicht kriege ich es mit Hilfe ja hin...
LG von Dani
Bitte warten ..
Mitglied: Biber
10.07.2009 um 20:18 Uhr
Moin nickdaniela,

könntest du mir helfen + eine exakte Schritt-für-Schritt-Anleitung schreiben?
Na ja.. ab welchem Schritt klemmt es denn?
Im exakten Schritt-für-Schritt-Erklären bin ich nicht so gut.

Abgesehen davon bin ich auch mit der skizzerten Lösung im Nachhinein nicht ganz glücklich, bzw. wenn eine meiner blutjungen rothaarigen Praktikantinnen mit diesem konzept bei mir aufgelaufen wäre - die würde wieder einen Bus später nach Hause fahren dürfen.

Der oben skizzerte Weg ist insofern Bullshit, weil... wer holt sich schon per Export aus einer SQL-sprechenden Datenbank alle 50000 Datensätze mit je 40 Attributfeldern, um diese Kopie dann zusammenzudampfen auf die 8000 relevanten Sätze und die 2 oder 5 interessanten Felder?

Geschickter wäre es doch, das o.a. SQL direkt auf diesen Cobra-Krams (was sich nu' auch nur ne einfache MDB/Access-Datei is') loszujagen.

Lass uns den zweiten Weg mal prüfen... aber am Besten am WE über PN oder Mail (in meinem Profil).

Grüße
Biber
Bitte warten ..
Mitglied: nickdaniela
10.07.2009 um 21:35 Uhr
Hallo Biber,
mit dem Bullshit hast du recht.
Nur leider bietet mir das Cobra keine Möglichkeiten an.
Ich habe zwar eine Dublettenkontrolle + bekomme dann alle Dubletten angezeigt, kann aber dann nicht sagen + jetzt blende alle so aus, dass nur noch die erste übrig bleibt.
Und die vorhandene SQL-Recherche ist eine für Dummys: Es ist eine reine WHERE-Abfrage, wobei aber eine eigene Eingabe erst ab dem dem Where möglich ist, so dass man noch nicht mal mit DISTINCT arbeiten kann, dass ja nach dem SELECT stehen muss. ;o(
LG von Dani
Bitte warten ..
Mitglied: Biber
11.07.2009 um 14:36 Uhr
Moin nickdaniela,

ich meinte auch nicht, dass ich das über die eventuell bei Cobra vorhandenen Filter/Export-Zusammenklick-Features machen wollte.
Sondern ganz normal "von außen" über irgendwas, was halb so viel SQL spricht wie ich, mich mit der Cobra.mdb (oder wie die heißen mag) verbinde und da höflich nachfrage. Nicht bei der Kundenauftragsannahme um einen Beratungstermin ersuche , sondern beim Hausmeister klingele.

Nicht von innen heraus mit Stützrädern und "Klicken Sie an, was Sie sehen wollen", sondern direkt.

Wenn diese Cobra-Jungs&Mädels irgendwann vor Jahren die Idee hatten, irgendeine Adress-Verwaltung in einem Standard-Datenbankformat auf den Markt zu schmeißen statt in einem selbst ausgedachten Dateiformat, dann hatten Sie sicherlich im Hinterkopf, dass diese Daten eben nicht nur mit einer Applikation interpretiert werden können sollen, sondern programmunabhängig sind.

Lass uns mal mailen/PNen bitte.

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Server
User-ID zu Application Crash

Frage von pablovic zum Thema Windows Server ...

Hyper-V
gelöst Hyper-V gleiche Datenträger-ID bzw. Volume-ID (10)

Frage von Bernd16 zum Thema Hyper-V ...

Batch & Shell
gelöst Get-WmiObject, nach Netzwerkadapter filtern (11)

Frage von Flodsche zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...