Zum Inhalt springen

doppelte daten selecten in oracle


darknoize.com

Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

:(

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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)...

:(

Link zu diesem Kommentar
Auf anderen Seiten teilen

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. :-(

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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));

B) 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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...