darknoize.com Geschrieben 18. Mai 2002 Geschrieben 18. Mai 2002 Hi mein Problem is folgendes: Ich habe 2500 Artikeldaten und einige (hunderte) sind doppelt angelegt ausserden 27000 Kundendaten mit dem gleichem Problem. Ich brauchen ein script welches mir alle Ähnlichen artikel und ein script welches ähnlichen kunden auflistet. Bei den Artikeln ist es recht einfach da man hier nach der eindeutigen ARTIKELNR gehen kann. Bei den Kunden muss ich den ähnlichen Namen mit der gleichen strasse und gleichen ort suchen. Leider habe ich net so viel Erfahrung nit SQL, so please help me. Zitieren
sheep Geschrieben 18. Mai 2002 Geschrieben 18. Mai 2002 Im bin zwar kein SQL Spezialist, aber dafür gibt es mit Sicherheit SQL Befehle. Wie wäre es mit dem Gegenteil von DISTINCT, also das nicht doppelte Datensätze gefiltert werden, sondern eben nur diese angezeigt werden ? Oder sowas wie ein SELECT mit WHERE ... LIKE ? Schau mal hier: http://spotlight.de/nzforen/asql/t/forum_asql_1.html Zitieren
darknoize.com Geschrieben 18. Mai 2002 Autor Geschrieben 18. Mai 2002 Ja an select un so hatte ich schon gedacht, aber das problem ist das die Artikel nicht immer gleich heissen sondern halt ähnlich sind. Ich brauche etwas was die atikelbezeichnungen nach ähnlichen Zeichenfolgen durchsucht. Z.B: Artikel 1: AVR 3000 bl Artikel 2: AVR 3000 b sind gleiche artikel aber halt doppelt angelegt. Zitieren
sheep Geschrieben 18. Mai 2002 Geschrieben 18. Mai 2002 Original geschrieben von darknoize.com Ich brauche etwas was die atikelbezeichnungen nach ähnlichen Zeichenfolgen durchsucht. Z.B: Artikel 1: AVR 3000 bl Artikel 2: AVR 3000 b sind gleiche artikel aber halt doppelt angelegt. Mit SELECT ... WHERE ... LIKE ... LIKE 'AVR 3000 b*' Für ORACLE gilt: _ ein beliebiges Zeichen % kein oder mehr Zeichen Zitieren
darknoize.com Geschrieben 18. Mai 2002 Autor Geschrieben 18. Mai 2002 ja das ist richtig, aber ich will ja net alle 2500 Atikel nach und nach eingeben Zitieren
HolzOnkel Geschrieben 18. Mai 2002 Geschrieben 18. Mai 2002 Kannst Du die "Unterschiede" mehr eingrenzen? Ist es immer nur ein Zeichen, welches sich unterscheidet? Oder haben die Artikel alle gleich lange Artikelnummern? Das Problem hierbei ist, dass man einem Rechner nur schwer "menschliche Intelligenz" (wie weit es bei manchen damit auch her sein mag ) beibringen kann. Bitte versuche mal, das genauer einzugrenzen... Gruss, der Onkel PS: Mit den Kunden wirst Du ein ähnliches Problem bekommen. Ich habe das Problem bei der Neuanlage von Krankenkassen in unserer Software, weil hier divese Konten automatisch vergeben werden. Leider wird das ganze von 3 Leuten mit unterschiedlichen Stilen gepflegt, und "Postfach 30 34" ist nun mal was anderes als "Postfach 3034" (stringmässig gesehen)... Zitieren
darknoize.com Geschrieben 20. Mai 2002 Autor Geschrieben 20. Mai 2002 Das ist leider nicht so einfach einzugrenzen. Die Artikel haben keine feste Anzahl von Zeichen. Ich kann also einen Artikel benennen wie ich mag, so kommt es das ein Artikel AVR 3000 oder AVR3000 oder AVR 3000 DOLBY heisst. Die Artikelnr (AVR 3000) kann allerdings nicht zweimal vergeben werden, da es die eindeutige Bezeichnung ist. Ich glaube es gibt nur eine Möglichkeit: Die Abfrage muss alle Artikel welche die gleichen Buchstaben in gleicher Reihenfolge haben auflisten, oder so ähnlich. Aber eine Ahnung wie man das umsetzten will. :-( Zitieren
hoagi Geschrieben 20. Mai 2002 Geschrieben 20. Mai 2002 Also ich kann dir hoer nur Microsoft Access empfehlen. Ist zwar kein ordentliches Datenbanksystem aber für solche Sachen wunderbar geignet. Also entweder Daten als Ascii rausziehen nach Access importieren oder über ODBC rüberziehen. Das Problem bei solchen Sachen ist das es keine allgemeingültigen Lösungen dafür gibt und Access in dieser Beziehung wirklich sehr flexibel ist. Ansonsten könnte der Aufwand die Sache mit pur-SQL zu lösen schnell aufwändiger werden als sich jeden Datensatz von Hand anzuschauen. Zitieren
darknoize.com Geschrieben 21. Mai 2002 Autor Geschrieben 21. Mai 2002 Jo Access und Exel über ODBC habe ich schon gemacht, aber gibt es da ne funktion die Ähnlichen Artikel zu filtern ? Zitieren
Olli_Master Geschrieben 21. Mai 2002 Geschrieben 21. Mai 2002 Access bietet einfache Möglichkeiten (für den DAU) zur Duplikatsuche von Datensätzen. (Einfach ein ODBC-Connect zur Datenbank machen [=Verknüpfen] und über den Assi eine "Abfrage zur Duplikatsuche" erstellen) Achtung: erfordert Vollinstallation von Access!! Aber ein FIA sollte es auch per SQL-Statement können: Man sollte zunächst die Felder bestimmen, die für einen Vergleich in Frage kommen. Der einfachste Fall sind mehrfach eingegebe Artikel anhand eines Feldes (z.B. den Artikelnamen) zu bestimmen (Suche nach identischen Werten in einem Feld): a) Übersicht SELECT First(a.Artikelname) Doppelter_Artikelname, Count(a.Artikelname) Duplikate FROM Artikel a GROUP BY a.Artikelname HAVING (((Count(a.Artikelname))>1)); Details SELECT a.Artikelname, a.Artikel-Nr FROM Artikel a WHERE (((a.Artikelname) In (SELECT Artikelname FROM Artikel Tmp GROUP BY Artikelname HAVING Count(*)>1 ))) ORDER BY a.Artikelname; (Die Bindestriche sind glaube Access-like und gehen nicht überall!) (Wenn es First() nicht gibt, dann nimmt man Min() oder Max() ) Das ganze geht auch mit der Suche in mehreren Feldern, da benutze ich selbst aber auch meist den Access-Assi (schande über mich ) Schwierig wirds bei Aussagen wie - "wir brauchen alle ähnlichen Datensätze". Das muss man exakt definieren können. (Sonst kann man gleich manuell kontrollieren!!!) Hoffe das hilft. Zitieren
darknoize.com Geschrieben 22. Mai 2002 Autor Geschrieben 22. Mai 2002 jaaaaaaaaa, das war gut !!!! Die Access-Lösung bringt es fast auf den Punkt. Ich habe jetzt 2227 Kunden welche scheinbar doppelt angelegt sind. Nun muss ich die noch durchgehen (leider haben wir drei Mandanten d.h. es kann ein Herr XYZ ist ein Kunde von Firma 1 und von Firma 2 und von Firma 3 sein). Ich hatte mich schon fast damit abgefunden dass ich alle 27000 Kunden durchgehen muss Vielen Dank der Tipp war echt super !!!:OD Zitieren
AxlHammer Geschrieben 26. Mai 2002 Geschrieben 26. Mai 2002 Also um doppelte Daten zu selecten benutz ich meist folgendes Statement select * from tabelle where rowid not in (select min(rowid) from tabelle group by spalte1, spalte2, ...) spalte1, spalte2, ... sind die referenzierten Tabellenspalten, in der die doppelten Daten stehen. AxlHammer Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.