Brauche Dringend Hilfe!

Indyyan

Grünschnabel
Der Fall ist der:

Meine Aufgabe ist es archivierte Daten von 1994-2004 in SQL zu Importieren. Die Datensätze kommen aus der Produktion. Die Produktnummer ist also der Primäreschluessel!
Es ist aber so, dass der Datensatz (das Produkt) einige Produktionsschritte zu durchlaufen hat und nach jedem Produktionsschritt wird der Datensatz in mehreren Feldern geändert. Dies ist im operativen System kein Problem.
Jedoch beim Import der archivierten Datensätze Da ich auch Datensätze importiere, die noch nicht den kompletten Produktionsprozess durchlaufen haben. Diese unterscheiden sich daher von dem fertigen Produkt (Datensatz). Ich kann also nicht mit Select Distinct die doppelten Daten aussortieren da ja die Daten nicht gleich sind.

Da ich 30 Textdateien zu importieren habe, frage ich mich ob es möglich ist mit 1994 zu beginnen und dann die Datensätze von 95,96,97,98... mit dem selben Primären Schlüssel zu überschreiben.

Bin für jeden Ratschlag mehr als dankbar

Grüße

Jan Karlsson
 
Sachverhalt etwas genauer erläutert

Hier etwas präzisser dargestellt

Produktnr | Quant | Lagerstatus | Bezahlt |
1 20059-04 | 0 | 0 | Nein |
2 20059-04 | 2345 | 1 | Ja |

Hab hier zwei Datensätze aus der Tabelle vereinfacht dargestellt.

Nachdem das Produkt fertig ist wird es gewogen daher Ändert sich die Quantität, nach dem das Produkt eingelager wurde ändert sich der Lagerstatus.....

Meine Frage ist nun: Kann ich damit beginnen die Textdateien aus 94 zu importieren und anschliessend 95,96,97.... und bei gleicher Produktnr den bestehenden Datensatz ueberschreiben`

Oder gibt es vielleicht eine andere Lösung

Danke vielmals
 
Wenn Du eine eigene Importroutine schreibst, die die Daten aus der Textdatei Datensatzweise einliest, kannst Du vor jedem Einfügen zunächst prüfen, ob der Datensatz bereits existiert

SELECT count(produktnr) gefunden from TABELLE where produktnr=yxz

liefert gefunden = 1 wenn schon varhanden, sonst 0

Wenn Schon vorhanden änderst Du den Eintrag mit

UPDATE TABELLE SET ..... WHERE produktnr = yxz

sonst

INSERT INTO TABELLE .....

Hoffe das hilft die weiter.

vop
 
Danke!

Wenn ich das richtig verstanden habe, geht das ganze nicht automatisch?
Da muss ich jeden Datensatz manuell mit Update ausbessern oder?

Sind aber insgesamt 120000 Datensätzte, wäre etwas zu muehsam

Gibt es keine Möglichkeit mit If...Else oder so

[tempdb].dbo.Tabelle1994.Produktnr = [tempd].dbo.Tabelle1995.Produktnr

Die, die gleich sind sollen erneuert werden und die, die noch nicht in der Tabelle vorkommen sollen hinzugefuegt werden

Bin ein Anfänger was die Programmierung betrifft, kann mir da wer helfen?
 
Ein kleines Programm zum Import wirst Du wohl schreiben müssen.
Das macht dann natürlich alles "automatisch".

In einer Schleife geht es alle Datensätze durch.

Eine andere Standardlösung ohne Programmierung fällt mir gerade nicht ein, sorry.

vop
 
Zurück