-
doppelte Sätze finden = > SQL
Hallo alle zusammen,
gibt es eine Möglichkeit via SQL doppelte Sätze in einer Datei zu finden UND zu löschen ?? Zur Zeit zeige ich mir die Sätze mit "Order by" Artno.und blättere und blättere...
Das kann es aber nicht sein. So wie ich feststellen konnte, sind die relevanten Sätze zu 100% identisch.
Bin im voraus für jeden Tip dankbar
Beste Grüße
Michael
-
Hi,
also ich würde folgendermaßen vorgehen.
Du erstellst eine neue Tabelle wo nur die Artikelnummern drin sind die doppelt sind. Dies fragtst du ab indem du auf die Artikeldatei eine Abfrage legst die einmal die Artikelnummer enthält und einmal die Anzahl der Artikelnummer (wie oft vorhanden). Im Where-String musst du dan angeben das du nur die haben willst wo Anzahl > 1 ist.
Nachdem du die Datei erstellt hast, verknüpfst du sie mit der Artikeldatei und löscht alle gleichen Sätze.
Leider kann ich dir keinen extakten SQL-String sagen, da wir SQL nicht installiert haben.
Ich hoffe ich konnte dir helfen.
Sascha
P.s. Falls du erreichen willst die Duplikate automatisch zu löschen (also nur einen Satz der beiden) so fürchte ich wird das nicht automatisch funktionieren. Jedenfalls wüsste ich nicht wie.
-
Hallo heynem und *all
Ich denke hiermit spreche ich JonnyRico aus der Seele:
Select * from perstp a
Where 1 < (select count(*) from
Perstp b
Where a.fld1 = b.fld1)
Order by a.fld1
Das Ding ist genial!
Natürlich ist where 1 auch durch where 2 oder 3 ersetzbar...
Einfach ausprobieren und glücklich sein!
gruß dirk
-
Hallo Dirk,
Du hast recht, einfach genial. Funktioniert
perfekt. Besten Dank, auch an Sascha. Aber die SQL Variante ist ein wenig schneller :-)
-
Der Subselect ist zwar ganz nett, aber es geht noch schneller:
select artnr, count(*) from file
group by artnr
having count(*)>1
[order by artnr]
Sollen Sätze gefunden werden, wo mehrere Felder identisch sein können, so ist der Select entsprechend zu erweitern:
select f1, f2, ..., count(*)
from file
group by f1, f2, ...
having count(*)>1
[order by f1, f2, ...]
-
... noch ne Variante:
select distinct * from dateiname
Ausgabe in Outfile.
Da ist dann wirklich nix mehr doppelt.
Anschließend Outfile über Ursprungsdatei kopieren. Das wars dann.
Gruss
Frank
-
Ja Fuerchau! -
muss ich neidlos anerkennen...
Dein SQL ist wohl noch ´ne bessere Wahl -
Danke ...
Ciao Dirk
-
@Rukober
Die Aufgabenstellung hieß: wie finde ich die doppelten und nicht wie eliminiere ich die doppelten.
Bei DISTINCT wähle ich natürlich nur die eindeutigen Daten aus, über die Anzahl (siehe count(*)) erfahre ich dabei leider nichts.
Similar Threads
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
-
By Akku in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 10-05-06, 08:07
-
By Herbie in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 30-11-04, 10:46
-
By hs in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 22-11-04, 10:30
-
By Schnichels in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 23-11-01, 12:54
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks