Finden ähnlicher Kunden

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Dominik Krebs
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 200
Registriert: Mo, 15. Apr 2019 16:19
Hat sich bedankt: 12 Mal
Danksagung erhalten: 4 Mal

Finden ähnlicher Kunden

Beitrag von Dominik Krebs »

Hallo zusammen,
wir haben eine Kundendatenbank, in der sich im Laufe der Zeit einige Doppelte Einträge angesammelt haben.
Natürlich sind die wenigsten exakt doppelt. Die meisten Fälle sind unterschiedliche Schreibweisen.
Beispielsweise:
- Max Mustermman Co. Kg
- Max Mustermman Co Kg
- Max Mustermman Co. KG
- Max Mustermman Co KG

Wir Arbeiten mit einem ADS Server. Hat jemand ein SQL oder XBase++ Skript was mir als Vorlage diesen könnte doppelte und ähnliche Datensätze zu finden?
Gruß Dominik
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Finden ähnlicher Kunden

Beitrag von Manfred »

also bei dem Beispiel würde ich mit StrTran() erstmal die Leerzeichen und den Punkt entfernen und damit suchen, das könnte schon einiges bringen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14656
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Finden ähnlicher Kunden

Beitrag von Jan »

Ich mach es wie Manfred. Alles raus was nicht Buchstabe oder Zahl. Zusätzlich: Alle Umlaute ausschreiben (ä->ae, ß->ss, etc.). Und dann alles auf Upper() oder Lower() setzen, um auch Groß/kleinschreibung abzufangen. Klappt sehr gut so.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Finden ähnlicher Kunden

Beitrag von Tom »

Am besten setzt man gleich einen Index, der eine solche Funktion enthält, die außerdem Umlaute umwandelt, ß gegen Doppel-S austauscht, diakritische Zeichen normalisiert (é -> e) usw. Und dann sucht man, nachdem man die gleiche Funktion auf den Suchbegriff angewendet hat.
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14656
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Finden ähnlicher Kunden

Beitrag von Jan »

Tom,

genau. Diakritische Zeichen hatt ich vergessen.

Index ist natürlich eine gute Idee. Aber dann muß man aber die Länge der Suchbegriffe unabhängig machen von der Lönge des Datenbankfeldes. Denn die Umwandlung der Umlaute verlängert den String, und je nach Anzahl der Umlaute in den zu indizierenden Feldern sehr unterschiedlich lang. Und ungleich lange Strings im Index sind halt keine gute Idee.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Finden ähnlicher Kunden

Beitrag von Tom »

Dann PaDed man zum Schluss einfach.
Herzlich,
Tom
Benutzeravatar
komnick
UDF-Programmierer
UDF-Programmierer
Beiträge: 75
Registriert: Mi, 04. Jun 2014 9:56
Wohnort: Berlin
Hat sich bedankt: 1 Mal
Danksagung erhalten: 5 Mal

Re: Finden ähnlicher Kunden

Beitrag von komnick »

Hallo allerseits,

bei unseren Debitoren/Kreditoren haben wir noch mit zwei weiteren Problemen zu tun, die hier noch nicht angesprochen wurden: Den Problemen der Reihenfolge und der Abkürzungen:

Max Mustermann, Rechtsanwalt
Mustermann, Max, Rechtsanwalt
Rechtsanwalt Max Mustermann
RA Max Mustermann

MUSTER Verwaltungsgesellschaft mbH & Co. Beispiel KG
MUSTER Verw.ges. mbH & Co. Beispiel KG
MUSTER Verw. GmbH & Co. Beispiel KG

Um das mehrfache Anlegen desselben Debitoren/Kreditoren zu verhindern, wusste ich mir nicht anders zu helfen, als schließlich dem User beim Anlegen die ähnlichen Einträge anzuzeigen und ihn entscheiden zu lassen, ob seine "neue" Firma wirklich neu oder in der Datei schon enthalten ist.

Besten Gruß
Martin
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14656
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Finden ähnlicher Kunden

Beitrag von Jan »

Hallo Martin,

zumindest bei den Personen haben wir das so gelöst, das in die Namensfelder wirklich nur die Namen kommen. Und Titel (Dr., Prof., Ing., etc.) oder sonstige Ergänzungen (wie in Deinem Beispiel "Rechtsanwalt") in eigene Felder. Der Vergleich läuft da nur auf die wirklichen Namensfelder.

Gerade bei den Firmen hab es auch das Problem, das die Felder zu kurz waren. Eher auf Namen ausgelegt. Und damit gab es Abkürzungsorgien ohne Ende, was zu Ergebnissen wie in Deinem Firmenbeispiel führte. Das konnten wir zumindest ein wenig entspannen indem wir einfach die Feldlänge angepasst haben, so das die da jetzt auch korrekt ausgeschrieben rein passen.

Aber egal was wir auch machen als Entwickler: Gegen phantasievolle oder faule Anwender ist kein Kraut gewachsen. Die werden alles aushebeln können.

Die einzigen Adressen die wir garantiert sauber hinbekommen sind Firmen im EU-Ausland. Wenn die uns ihre UstID geben kontrollieren wir die immer gegen bei der Bundeszentrale für Finanzen. Und nur was der Schreibweise entspricht die bei denen hinterlegt ist wird von uns auch akzeptiert. Insbesondere österreichische Kunden sind da extrem schmerzbefreit. Die geben da auch mal die UstID bei Privatbestellungen an, oder die Lieferanschrift, oder sind umgezogen bzw. umfirmiert und haben das nicht gemeldet. Das gibt regelmäßig heftige Diskussionen mit denen weil die das nicht einsehen wollen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: Finden ähnlicher Kunden

Beitrag von flanelli »

Jan hat geschrieben: Fr, 21. Jul 2023 8:40 Insbesondere österreichische Kunden sind da extrem schmerzbefreit. Die geben da auch mal die UstID bei Privatbestellungen an, oder die Lieferanschrift, oder sind umgezogen bzw. umfirmiert und haben das nicht gemeldet. Das gibt regelmäßig heftige Diskussionen mit denen weil die das nicht einsehen wollen.
Bei allem Respekt, aber du glaubst doch nicht allen Ernstes, dass man sich als Unternehmen ( einerlei
welcher Rechtsform dieses unterliegt ) und ebenso nicht als Unternehmer ( einerlei ob als protokolliertes e.U.
oder lediglich als zumeist gängiges Kleinstunternehmen ) von einem LIEFERANTEN vorschreiben läßt, wie
man sein Unternehmen bezeichnet/schreibt und ob bei Prvatbestellungen ein UID angedruckt wird oder nicht etc. etc.

Geradezu unerhört finde ich zudem die Bemerkung, dass es diesbezüglich zu heftigen, von Dir befeuerten
Diskussionen mit "denen" führt, weil die das nicht einsehen wollen.

Im Prinzip gäbe es da keine langatmige "heftige" DIskussion denn solche Lieferanten möchte man ehrlich gesagt
jedenfalls als Österreicher ( einerlei on schmerzbefreit oder nicht ) nicht haben und kann man auf deren
Dienste auch gern verzichten.

Sorry, aber Deine Wortwahl ist einfach völlig daneben [-X
Ahoile aus dem Süden
Benutzeravatar
komnick
UDF-Programmierer
UDF-Programmierer
Beiträge: 75
Registriert: Mi, 04. Jun 2014 9:56
Wohnort: Berlin
Hat sich bedankt: 1 Mal
Danksagung erhalten: 5 Mal

Re: Finden ähnlicher Kunden

Beitrag von komnick »

Vielleicht hätte ich statt des Beispiels "Rechtsanwalt" lieber "Bauklempnerei" wählen sollen. Die User lesen auf einem Briefkopf "Bauklempnerei Max Mustermann" und wissen nicht, ob das ein Firmenname ist oder sie die Person erfassen sollen.

Auf das Beispiel "Rechtsanwalt" kam ich, weil ich mich mal darüber gewundert habe, dass User alle Rechtsanwälte als "RA ...." erfasst haben, weil sie es als praktisch empfunden haben, dass dann alle Rechtsanwälte alphabetisch hintereinander stehen. (Stichwort: "phantasievolle Anwender")

Besten Gruß
Martin
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14656
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Finden ähnlicher Kunden

Beitrag von Jan »

Flanelli,

ich liebe Österreich. Ich habe mehrere Jahre dort gelebt und das Land, die Leute, die Natur, die Kultur sehr genossen. Will sagen: Ich habe definitiv kein Problem mit Österreich oder Österreichern.

Und Deine Argumentation geht vollkommen an dem vorbei was Realität ist und an dem, was ich beschrieben habe.
- Erstens habe ich das nur geschrieben um aufzuzeigen, das man bei bestimmten Adressgruppen das Problem der Schreibweisen der Adressen minimieren kann (um das geht es ja in diesem Thread).
- Und zweitens schreibe nicht ich denen vor wie die Ihre Firma zu nennen haben. Sondern die europäischen Finanzbehörden. Nämlich so wie die sich selber genannt haben und das den Finanzbehörden mitgeteilt haben. So müssen die sich dann bitte auch weiterhin nennen. Außer die benennen sich offiziell um und melden auch das wiederum den Finanzbehörden.

Wenn jemand aus dem EU-Ausland etwas bei mir kauft und dabei seine UstID angibt ist es meine Verpflichtung, das zu überprüfen. Denn immerhin geht es hierbei um die Ust. Einer von uns beiden muß die ja zahlen - ich oder mein Kunde. Bei Angabe der UstID übernimmt er das. Macht er das nicht und es stellt sich heraus das er da etwas vorgetäuscht hat was nicht der Wahrheit entspricht, dann muß ich zahlen. Und noch Strafe oben drauf. Von daher habe ich die zwingende Verpflichtung seine angegebene UstID gegen die angegebene Anschrift zu überprüfen. Das mache ich automatisch über eine API-Abfrage beim Bundeszentralamt für Finanzen. Und die geben mir nach einem nicht veröffentlichten Algorithmus zurück ob die Daten gültig sind oder nicht.

Was dann passiert ist das was ich geschildert hatte. Insbesonders Österreicher sehen meist nicht ein das die da etwas falsch gemacht haben. Die erwarten von uns ein wenig Toleranz, selbst wenn die angegebene Adresse nicht einmal im Entferntesten etwas mit der bei den Finanzbehörden hinterlegten Adresse etwas zu tun hat. Die ich denen aber nicht geben kann, denn sonst mache ich mich möglicherweise strafbar.

Und was hast Du gegen den Ausdruck "mit denen"? Soll ich grundsätzlich schreiben "mit Kunden aus dem österreichischen Ausland"?

Quintessenz: Meine Wortwahl ist in keinem Fall völlig daneben. Ich habe weder beleidigende noch verurteilende noch gehässigte Vokalen verwendet. Ich habe nichts eingefordert was nicht gesetzlich vorgeschrieben wäre. Du dagegen hast mir unterstellt etwas eingefordert zu haben was ich gar nicht behauptet habe.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 651
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Finden ähnlicher Kunden

Beitrag von nightcrawler »

zurück zum Thema: eventuell könnte dir eine Ähnlichkeitssuche helfen: https://www.jd-engineering.de/german-so ... mentation/
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Dominik Krebs
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 200
Registriert: Mo, 15. Apr 2019 16:19
Hat sich bedankt: 12 Mal
Danksagung erhalten: 4 Mal

Re: Finden ähnlicher Kunden

Beitrag von Dominik Krebs »

Hallo zusammen,
vielen Dank für die ganzen Ideen, Hinweise und Vorschläge.
Ich bin mir sicher, das wird mein Problem lösen!
Gruß Dominik
Antworten