我給你的我怎麼可能處理這個問題......這不是辦法的abstractible /可重複使用的函數類型的想法 - 只是一個實用的,善良得-IT-完成的東西。
0)複製你的舊錶進行備份。
1)給你的原始表一個唯一的記錄標識符。在名爲'pk'的表格設計中添加一列,點擊小鍵盤按鈕。確保在保存後使用自動遞增的整數填充它。
2)創建新表,與列:PK,ID,類class1,DATE1,Class2中,DATE2,...,classn,回到名單Daten。你可以做一個
select id, count(class) from table order by count(class) desc.
快速看看你需要創建多少個字段。
2)做插入#1
Insert into newtable (pk, id, class1, date1)
select min(pk) id, class, date from oldtable
3)不刪除#1
Delete from oldtable
where pk in(select pk from newtable)
4)做更新#1
Update newtable a
set a.pk = b.pk, a.class2 = b.class, a.date2 = b.date
FROM (select min(pk) pk, id, class, date from oldtable) b
5)做刪除#2(重複步驟3)
6)不更新#2(重複步驟4,但將2改爲3)。 I.e .:
Update newtable a
set a.pk = b.pk, a.class3 = b.class, a.date3 = b.date
FROM (select min(pk) pk, id, class, date from oldtable) b
...依此類推,直到舊錶中沒有剩餘記錄爲止。
就像我說的 - 這不是重複使用,必須修改它的每一個迴路等,如果你知道如何使用ADO記錄集,等等,你可以轉換成一些更抽象/重本 - 可用,但聽起來你不會多次使用它。
祝你好運。
查看['TRANSFORM..PIVOT'語句](http://msdn.microsoft.com/zh-cn/library/bb208956(v = office.12).aspx)。 – onedaywhen