Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi doppelte Datensätze in Tabelle finden (https://www.delphipraxis.net/102765-doppelte-datensaetze-tabelle-finden.html)

haentschman 4. Nov 2007 11:40

Datenbank: firebird • Version: 2.0 • Zugriff über: ibexpert / zeos

doppelte Datensätze in Tabelle finden
 
Hallo alle... :hi:


...ich habe meine Daten aus Paradoxtabellen in Firebird importiert.

...beim setzten des PrimaryKey meldet IBExpert das gleiche Datensätze vorhanden sind.
(Felder - Filiale, Lagerort, Artikelnummer)

...ist eigentlich unmöglich, da auch in der Paradoxtabelle Key´s vorhanden waren, welche genau das verhindert haben :wiejetzt:



die Frage: - wie kann ich in IBExpert oder über SQL die gleichen Datensätze filtern, finden ? :gruebel:

Hinweis: in diesem Fall sind bei den 3000 Datensätzen die Felder Filiale und Lager identisch --- nur die Artikelnummmer ist unterschiedlich. Im Prinzip muß ich die doppelte Artikelnummer finden...


Danke im Voraus...

mkinzler 4. Nov 2007 11:48

Re: doppelte Datensätze in Tabelle finden
 
Wie ist den die Tabelle definiert?In der FB Tabelle eirst du die doppelten nicht finden, da diese ja nicht übernommen wurden; du musst also in der Paradox suchen.

haentschman 4. Nov 2007 11:59

Re: doppelte Datensätze in Tabelle finden
 
Hallo mkinzler...

Ich habe erst einmal die Tabellenstruktur der Paradoxtabellen und dann die kompletten Datensätze übernommen.

da ich die Struktur der Firebird Tabellen geringfügig verändern wollte habe ich die Tabellen in Firebird ohne Key´s und Indexe erstellt.

... jetzt beim manuellen Erstellen des PrimaryKey meckert IBExpert doppelte Datensätze an, welche eigentlich in der Source Tabelle nicht vorhanden sein sollten ( müßten ). :gruebel: ...muß wohl was schief gegangen sein ! :roll:

... wie finde ich jetzt die doppelten ?

grenzgaenger 4. Nov 2007 12:01

Re: doppelte Datensätze in Tabelle finden
 
hast du die drei schlüssel als compound key's eingetragen?

ansonsten würd ich dir raten, das ganze schnell mal in excel anzuschaun... sortieren und da kannte recht leicht filtern. ansonsten, geht das auch über sql... sieh dir dazu mal subselect, group by, heaving an...

grenzgaenger 4. Nov 2007 12:03

Re: doppelte Datensätze in Tabelle finden
 
in einer ordentlichen datenbank müssen alle datensätze eindeutig über den primary key identifiziert werden. wenn du den gelöscht hast, dann meckert er natürlich, weil praktisch alles doppelt ist. leg erst mal deinen primary key an... entweder atomar oder als compound, dann müsst es auch klappen

mkinzler 4. Nov 2007 12:06

Re: doppelte Datensätze in Tabelle finden
 
Poste mal die Strukturen der Paradox und der entsprechenden FB-Tabellen

haentschman 4. Nov 2007 12:17

Re: doppelte Datensätze in Tabelle finden
 
...Danke für euer Interresse. :-D

- filtern ? wenn man nicht weiß nach welcher Artikelnummer
- 3000 Datensätze durchblättern ? bei 15 stelligen Artikelnummer ? ... habe ich nach 1 Stunde aufgegeben wg. Kopfschmerzen :evil:

ich schreibe Euch noch einmal den Ablauf:

1. Firebird Tabellen ohne Keys und Indexe erstellt... i.O.
2. Datensatze übertragen... i.O.
3. Erstellen PrimaryKey (Filiale, Lagerort, Artikelnummer)... Fehler wg. doppeltem Datensatz...
---> doppelter Datensatz sollte eigentlich nicht möglich sein, da die Paradox Tabelle auch PrimaryKey über diese Felder hatte
- :gruebel: was schief gelaufen ist kann ich nicht sagen.
---> welche Artikelnummer ist doppelt :?:

4. manuelles löschen doppelter Datensatz... hätte ich gern :-D

haentschman 4. Nov 2007 12:29

Re: doppelte Datensätze in Tabelle finden
 
also...

ich habe mir noch einmal die Paradox Tabelle angeschaut.

im PrimaryKey war zusätzlich das Feld BESTAND inbegriffen. (Filiale, Lagerort, Artikelnummer, Bestand)

d.h. ich kann mir durchaus eine doppelte Artikelnummer mit anderem Bestand gespeichert haben... warum auch immer :gruebel:

... und die doppelte gilt es zu finden :roll:

grenzgaenger 4. Nov 2007 12:31

Re: doppelte Datensätze in Tabelle finden
 
Liste der Anhänge anzeigen (Anzahl: 1)
wo ist das problem, wenn du die nach den schlüsseln sortiert hast, brauchste nur 'ne einfache abfrage in excel oder 'ne andere tabellenkalkulation machen und kannst dann auf das ergebnis 'n filter setzten. ich häng mal 'n beispiel an. <HTH>

TBx 4. Nov 2007 12:43

Re: doppelte Datensätze in Tabelle finden
 
Mit folgendem SQL-Statement solltest Du Die gesuchten Datensätze finden (nur runtergetippt):
SQL-Code:
select Filiale,
       Lagerort,
       Artikelnummer
  from DeineTabelle
  group by Filiale,
           Lagerort,
           Artikelnummer
  having count (*) > 1
Es wäre unter Umständen sinnvoll, zuvor einen Index über die Felder anzulegen.

Hope it helps

onlinekater


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:08 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz