我有兩個表,我想加入到一個表中,並使用TypeID來區分它們。比方說,類型爲A和B的表是A_Level和B_LevelSQL合併兩個表並更新引用ID
A的表看起來像
級別
Level_ID說明
B的表看起來像
級別
Level_ID LEVEL_DESC
A的Level_ID從表C引用爲Level_ID
B的Level_ID從表D引用爲Level_ID
我正在查找將兩個表合併成一個表(Level_Code)並相應地更新引用的表ID的腳本。
任何幫助,非常感謝。
我有兩個表,我想加入到一個表中,並使用TypeID來區分它們。比方說,類型爲A和B的表是A_Level和B_LevelSQL合併兩個表並更新引用ID
A的表看起來像
級別
Level_ID說明
B的表看起來像
級別
Level_ID LEVEL_DESC
A的Level_ID從表C引用爲Level_ID
B的Level_ID從表D引用爲Level_ID
我正在查找將兩個表合併成一個表(Level_Code)並相應地更新引用的表ID的腳本。
任何幫助,非常感謝。
select a.Level_Id ALevelId, b.Level_Id BLevelId,
case ISNULL(a.Level_Id, 0) when 0 then 'B' else 'A' end AS Type,
case ISNULL(a.Level_Id, 0) when 0 then b.Level_Id else a.Level_Id end AS NewLevel_Id
INTO Dummy
FROM a
FULL JOIN b On (a.Level_ID = b.Level_ID);
UPDATE c
SET c.Level_id = Dummy.NewLevel_Id
from Dummy, c
WHERE c.Level_Id = Dummy.ALevelId
AND Dummy.Type = 'A';
UPDATE d
SET d.Level_id = Dummy.NewLevel_Id
from Dummy, d
WHERE d.Level_Id = Dummy.BLevelId
AND Dummy.Type = 'B';
SELECT Dummy.NewLevel_Id, a.Level, a.LevelDesc As Description
INTO YourNewTable
from Dummy JOIN a ON (Dummy.ALevelId = a.Level_Id)
Where Dummy.Type = 'A'
UNION
SELECT NewLevel_Id, Level, LevelDesc As Description
from Dummy JOIN b ON (Dummy.BLevelId = b.Level_Id)
Where Dummy.Type = 'B'
DROP TAble Dummy;
Im在關鍵字'AS'附近獲得錯誤的語法。從查詢的第二行以及reate Table YourNewTable – Gage 2010-08-10 15:40:42
@Gage之後,我已經更新了腳本 – 2010-08-10 16:22:15
您使用的數據庫是?你確定TableA和TableB中沒有重複的ID號嗎? – JNK 2010-08-10 14:48:47
TableA和TableB中存在重複的ID號,這就是爲什麼我需要使用新ID更新參考表 – Gage 2010-08-10 14:50:54
好的,您使用的是哪個DB? – JNK 2010-08-10 14:53:26