2012-12-26 30 views
1

我有idsnameattendance列像如何重新插入所有舊行到SQL Server表時一個月改變

id sname attendance month 
1 xyz  p   12 
2 asd  p   12 
3 qwe  L   12 
4 tyy  A   12 

我想重新插入idsname下月attendance每個月的表。

現在我想在Attendance柱與AB重新插入了1個月的數據是這樣的:

id sname attendance month 
1 xyz  p   12 
2 asd  p   12 
3 qwe  L   12 
4 tyy  A   12 
1 xyz  ab   1 
2 asd  ab   1 
3 qwe  ab   1 
4 tyy  ab   1 
+1

凡在表中月? –

+0

抱歉,最後一個字段是月份 – user1768465

回答

2

如果我猜中了:

INSERT INTO t (id,sname,attendance,month) 
SELECT id,sname,'ab',(month%12)+1 from t 
0

試試這個

INSERT INTO your_table (id,sname,attendance,month) 
SELECT T.id, T.sname, T.attendance, M.m 
FROM (SELECT 1 m UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11 UNION SELECT 12) AS M 
CROSS JOIN your_table T 
WHERE NOT EXISTS (SELECT * FROM your_table WHERE m=M.m) 

而且最好不要使用保留字狀MONTH的名稱表,列和其他對象。

相關問題