2016-11-29 2 views
0

Ich habe die folgende Tabelle:neue Zeilen mit den vorhandenen Daten unter Verwendung von SQL

Table1

Und alles, was ich tun möchte, ist fügen Sie zwei neue Zeilen pro PersonID dh

Table 2

These sind nur kleine Snip-Bits aus der tatsächlichen Tabelle, da diese Tabelle große Datenmengen enthält.

Jede Hilfe würde sehr geschätzt werden.

+0

so im Wesentlichen möchten Sie jede Zeile auf personID Basis duplizieren? – aron9forever

+1

Was ist die Logik? – Mihai

+0

Es ist völlig unlear was Sie fragen. Bitte beschreiben Sie, welche Regeln das Hinzufügen von Zeilen (in der fraglichen Art, in der Sie Spalten geschrieben haben) zur Tabelle definieren. – Kacper

Antwort

1

Verwenden Sie INSERT?

INSERT INTO yourTable (ID, PersonID, JobID, Verified) 
SELECT NULL, PersonID, MAX(JobID) + 1, 0 
FROM yourTable 
GROUP BY PersonID 
UNION ALL 
SELECT NULL, PersonID, MAX(JobID) + 2, 0 
FROM yourTable 
GROUP BY PersonID 

Erläuterung:

Einfügen NULL für die ID Spalte sollte die Datenbank zwingen, die nächste Sequenz zuzuordnen, unter der Annahme, dass ID eine Autoinkrement-Spalte sein. Wenn nicht, dann erwäge vielleicht, dies zu ändern. Für jeden der neuen Datensätze wird die Sequenz einfach fortgesetzt, daher meine Verwendung von n+1 und n+2. Und Sie scheinen Null als Standardwert von Verified zu verwenden, also wurde dies hart codiert.

0

Danke für alle Antworten/Kommentare.

Ich konnte meine Frage mit einem CURSOR lösen (siehe unten). Es ist nicht brillant, aber es macht den Job.

enter image description here

Verwandte Themen