Einfügen neuer Daten in bestehende Tabelle

Romero

Aktiver Benutzer
Beiträge
46
Hallöchen an euch,

für euch sicherlich ein einfaches aber ich würde gern wissen, wie ich neu-erzeugte Daten in eine bestehende Tabelle anhänge bzw. suche und ersetze. Am Ende werden aus einer Datumszeile mehrere Zeilen zu einem Datum.

Ich habe eine Tabelle mit mehreren Spalten. Die Tabelle wird mit Daten bis Gestern befüllt. Somit habe ich zu jedem Datum mehrere Zeilen, aufgrund verschiedener Produktionsstrecken.
Siehe hier:
2021-08-19 | Produktionslinie VW | Wert1 | Wert2 | ...
2021-08-19 | Produktionslinie AUDI| Wert1 | Wert2 | ...
2021-08-20 | Produktionslinie VW | Wert1 | Wert2 | ...
2021-08-20 | Produktionslinie AUDI| Wert1 | Wert2 | ...
2021-08-21 | Prod.frei | NULL | NULL | ...
2021-08-22 | Prod.frei | NULL | NULL | ...
2021-08-23 | Produktionslinie VW | Wert1 | Wert2 | ...
2021-08-23 | Produktionslinie AUDI| Wert1 | Wert2 | ...
2021-08-24 | NULL | NULL | NULL | ...
2021-08-25 | NULL | NULL | NULL | ...
2021-08-26 | NULL | NULL | NULL | ...
...

Nun möchte ich in/an diese Tabelle die tagesaktuellen Daten hinzufügen, also zum heutigen Datum die 2 neuen Zeilen anbringen. Somit wird aus:
2021-08-24 | NULL | NULL | NULL | ...
=>
2021-08-24 | Produktionslinie VW | Wert1 | Wert2 | ...
2021-08-24 | Produktionslinie AUDI| Wert1 | Wert2 | ...

Die anderen nachfolgenden und vorhergehenden Daten sollen aber weiterhin bestehen bleiben.

Bin ich da hier mit INSERT richtig oder müsste doch eher ein UPDATE her?
Oder ggf. neue Daten hinten anfügen und diese eine "leere" Datensatz-Zeile löschen?

LG Romero
 
Werbung:
Wenn die Lage so ist, wie Du zeigst, brauchst Du beides.
Update für bereits vorhande Zeilen.
Insert für fehlende.
Leider haben Deine Daten keine Namen..
Und es ist nicht klar, was mit den Punkten ist.

die where Clause für Update könnte vielleicht so aussehen:
[where <feldohneNamen> is null and <feldohneNamenMitDatum> = CONVERT(DATETIME,'24/08/2021',103)
vor dem Insert müsstest Du prüfen, ob zu dem Datum bereits Daten vorliegen.
Es geht auch beides in einem Statement, das nennt man upsert, der Befehl lautet glaub ich merge.
 
Werbung:
Hey dabadepdu,

die Namen der Daten (hatte ich in der schnelle unterlassen :() lauten:
Tagesdatum | ProdLinie | Soll_Werte | Ist_Werte | ...
Die "..." stehen lediglich für ein weitere Spalten, die ich hier nicht alle nennen wollte :)

Also ist hier MERGE die richtige Syntax.
 
Zurück
Oben