1
我想將一些現有數據轉移到新的數據表中。從表中選擇重複鍵值組合的第一個值
我有表具有取代: - ID - currentItemId - formerItemId - 內容識別
對於相同的內容有可能我有組合currentItemId和formerItemId多個條目。
讓我告訴它的現在:
ID_T1 currentItemId formerItemId contentId
1 100 200 300
2 100 200 301
3 100 200 302
4 105 201 303
5 105 201 304
6 110 205 320
7 111 206 321
8 120 204 322
9 130 208 323
10 130 208 324
現在,我想選擇TOP ID爲每個組合formerItemId和currentItemId:
ID ID_T1 contentId
1 1 300
2 1 301
3 1 302
4 4 303
5 4 304
6 6 320
7 7 321
8 8 322
9 9 323
10 9 324
兩個表還包含時間戳和其他一些數據 - 我沒有列入這個例子,以便更容易理解。
我嘗試了自我連接(沒有成功),嵌套選擇(給了我正確的價值爲原始組合,但它不重複,它給了我其他記錄ID爲NULL),但似乎沒有任何工作。試過這樣的事情:
SELECT di1.ID,
(SELECT TOP(1) di1.ID
FROM TABLE
WHERE
di1.currentItemtId = di2.currentItemtId AND di1.formerItemId = di1.formerItemId
) AS repeat
,di2.deleteItemId
,di1.currentitemtId
,di1.formerItemId
,di1.contentId
FROM Table di1
LEFT JOIN
Table di2 ON di1.ID = di2.ID
但是這種方式ID不會重複 - 我得到的ID與普通select相同的值。
我正在使用SQL Server 2008.
任何幫助將不勝感激。
嗨!感謝您的回答:我給出了一些關於gow的錯誤信息,我應該選擇:P我編輯了第二個包含結果的表格。 – CyberHawk
請檢查添加的第二個答案。 – TechDo
非常感謝您的幫助! Upvoted並標記爲答案。 – CyberHawk