2013-02-08 21 views
1

當我嘗試將數據從1列複製到另一列時,出現錯誤,因爲有2行數據幾乎相同,但diff唯一標識。我使用select語句,它可以很好地選擇要從train_date複製到del_date列的特定日期,但是where語句中的條件。如何將數據複製到del日期,然後刪除train_date行。 感謝SQL:通過連接然後刪除,將數據從一列中的一列複製到另一列

update dbo.Comp d 
    set d.del_date = t.train_date 
    (
    SELECT d.unique_id as delUnique 
     ,t.unique_id as TraUnique 
     ,d.del_date as delDelDate 
     ,t.del_date as traDelDate 
     ,d.train_date as delTrainDt 
     ,t.train_date as traTrainDt 

    FROM dbo.Comp d 
    inner join dbo.Comp t on d.g_id = t.g_id 
    where t.del_date = d.train_date 
    and t.unique_id <> d.unique_id 
    order by d.og_id, d.g_id 
+0

? – PinnyM 2013-02-08 15:55:00

+0

我想我知道你的意思,但一些示例數據不會出錯。 – 2013-02-08 15:55:05

回答

1

試試這個,您正在使用什麼數據庫管理系統(MySQL和SQL Server)的

update d 
set d.del_date = t.train_date 
FROM dbo.Comp d 
inner join dbo.Comp t on d.g_id = t.g_id 
where t.del_date = d.train_date 
and t.unique_id <> d.unique_id 
+0

謝謝,當我使用上面的語句時,我得到以下錯誤: – SAL 2013-02-08 16:09:37

+0

Msg 156,級別15,狀態1,行7 關鍵字'順序'附近的語法不正確。 – SAL 2013-02-08 16:09:56

+0

如果我將這個命令取下,那麼它會給我以下錯誤:消息209,級別16,狀態1,行6 歧義列名稱'unique_id'。 消息209,級別16,狀態1,行6 不明確的列名稱'unique_id'。 – SAL 2013-02-08 16:10:52

相關問題