[MSSQ] Erstellen neuer Datensätze aus bisherigen

Fragenfrager

Erfahrenes Mitglied
Hallo liebes Forum,
ich möchte in eine Tabelle einen neuen Datensatz einfügen, der in weiten Teilen dem bisherigen entspricht, an einigen Punkten allerdings abweicht. Die Tabelle enthält ca 8000 Einträge.

Die Felder sind:
Mandant: (int)
Abrechnungskreis: (int)
Personalnummer: (int)
Vertragsnummer: (int)
TaetigkeitAlt: (int)
TaetigkeitNeu: (int)
TaetigkeitAb: (datetime)
TaetigkeitBis: (datetime)


Ziel ist es, das für alle Datensätze, die als TaetigkeitBis das Datum "31.01.2099" haben, ein neuer Datensatz angelegt wird, der die gleichen Einträge in Mandant, Abrechnungskreis, Personalnummer und Vertragsnummer hat. Die anderen Felder sollen wie folgt befüllt werden: TaetigkeitNeu: "413711122"
TaetigkeitAb: "01.12.2011"
TaetigkeitBis: "31.01.2011"

Idealerweise soll im urspünglichen Datensatz das TaetigkeitBis gleichauf den "30.11.2011" gesetzt werden, das wäre aber nur eine schöne Zugabe, das kann ich notfalls auch anders lösen

Ich habe schon verschiedene Varianten versucht, aber ich bekomme es nicht hin.
 
Ich kenne MS SQL nicht. Aber bei den Meisten SQLs geht das INSERT...INTO..SELECT - Statement.

Etwa so sieht dann das aus. (Datumsformat musst du noch MS SQL-Tauglich machen)
SQL:
INSERT INTO mytable (
	Mandant,
	Abrechnungskreis,
	Personalnummer,
	Vertragsnummer,
	TaetigkeitAlt,
	TaetigkeitNeu,
	TaetigkeitAb,
	TaetigkeitBis		
) 
SELECT 
	Mandant,
	Abrechnungskreis,
	Personalnummer,
	Vertragsnummer,
	TaetigkeitAlt,
	413711122 AS TaetigkeitNeu,
	"01.12.2011" AS TaetigkeitAb,
	"31.01.2011" AS TaetigkeitBis
FROM 
	mytable
WHERE
	TaetigkeitBis = "31.01.2099";

Anschliessend mit derselben WHERE-Bedinung noch ein Update absetzen
 
Zuletzt bearbeitet von einem Moderator:
Danke Robak,

ich hatte mal wieder zu kompliziert gedacht. Der Befehl ist in dem Fall identisch mit MSSQL.
Ich ziehe jetzt einen Dump des Echtsystems und werde dann mal loslegen.
Danke!
 

Neue Beiträge

Zurück