# Beim Import in MSSQL Import aus DBF doppelte Einträge filtern



## grashnaknieswurz (6. April 2005)

Guten Tag Freunde der leichten Unterhaltung,

für alle Profis unter euch hab ich eine sher Interessante Frage.
Ich habe eine DBase Tabelle (aus einem Kassenprogramm) und möchte die Daten in eine SQL Tabelle importieren und dabei doppelte Einträge (Belegnummern) rausfiltern und nicht mitimportieren. 

In der DBase Tabelle wird die Belegnummer,Uhrzeit, Artikelnummer, Menge, VK usw. gespeichert. Allerdings gibt es keine Zeilennummer was die Sache einfacher gestalten würde.
Die Uhrzeit wird in Stunde/Minute gespeichert, somit ist es also möglich einen Artikel mehrmals in der selben Minute zu verkaufen.
Diese Zeilen würden dann 100% identisch sein. Manchmal wird aber ein ganzer Tag doppelt importiert wodurch auch doppelte Einträge entstehen.
Mal ein kleines Beispiel :
Artikel xy wird um 16:59 zweimal verkauft.
Der komplette Tag ist doppelt importiert (Jaja, ich will auch ein neues Kassensystem aber der Chef nicht)
Somit ist der Atikel xy um 16:59 viermal in der Datenbank.
Da die Abschlusszeile auch doppelt ist kann ich die Belege bzw. Tage rausfiltern wo verdoppelte Einträge zu finden sind. 
Ich suche jetzt also eine Möglichkeit am besten über ein DTS die vermehrten Einträge rauszuwerfen.

Mein Gedankengang wäre der folgende ...
Ich weiß das der Inhalt des Belegs zweimal vorhanden ist. Also teile ich die Belegzeilen (in unserem Beispiel vier) durch zwei und bekomme zwei Zeilen heraus. Das bedeutet am Ende müssen zwei Zeilen übrig bleiben (Ich hoffe ihr könnt mir noch folgen). 
Wenn ich irgendwie die Belegzeilen durchnummerieren könnte, dann würde ich einfach sagen lösch mir Alles was grösser als 2 ist. Aber genau da liegt mein Problem. 
Wie und womit kann ich das programmieren damit ich es in ein DTS Paket reinpacken kann ? 
Ich hab zwar Ahnung von PHP und dort könnte ich das auch machen aber ich glaub das da eine Andere Lösung her muss. 
Vielleicht kann mir da jemand einen Tip geben womit ich das am besten bewerkstelligen kann ...

schönen Gruß
Grashnak


----------



## x_Red_Eagle_x (6. April 2005)

Kannst du die nicht einfach in eine Zwischentabelle speichern und dann ein synchronisiertes Update machen?

mfg


----------



## grashnaknieswurz (6. April 2005)

hmmmm. So recht kann ich dir nicht folgen.
Die Zwischentabelle ist kein Problem, aber wie bekomme ich dann da die Doppelten weg ? 
Leider sind die Doppelten ja schon in der Grundtabelle und bisher konnten wir diese auch noch nicht verhindern.

Gruß
Grashnak


----------



## x_Red_Eagle_x (6. April 2005)

Du kannst ein synchronisiertes update auf eine Tabelle machen


```
z.B.:
UPDATE tabelle1
SET ID= t.ID
FROM tabelle2 t
WHERE .......
```

Damit hast du die Möglichkeit einen Filter einzubauen (z.B.: mit GROUP BY, DISTINCT)

mfg


----------

