Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

doppelte daten selecten in oracle

Empfohlene Antworten

Veröffentlicht

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.

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

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.

:(

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

ja das ist richtig, aber ich will ja net alle 2500 Atikel nach und nach eingeben

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

:(

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

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.

Jo Access und Exel über ODBC habe ich schon gemacht, aber gibt es da ne funktion die Ähnlichen Artikel zu filtern ?

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.

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

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.