2015-09-15 55 views
1

我想在某些情況下更新不同列的值。這很複雜。我試圖自己解決這個問題已經有一個星期了。 (開和關)根據另一列的值更新SQL列。 (這不是那麼簡單)

這是它目前的樣子: enter image description here

我需要一個SQL語句將尋找LotNo在操作代碼1280,併爲其分配具有相同CastTID所有值。

這是它應該是什麼樣子 後enter image description here

我真的很感激任何幫助!這是我的第一篇文章,如果iv'e忽略了任何重要的內容,請讓我知道,以便我可以幫助你。

+2

還顯示您的查詢 –

回答

1

您可以在更新語句中使用連接以使其更容易。

update t 
set CastLotNo = t2.LotNo 
from yourTable t 
inner join yourTable t2 on t2.CastTID = t.CastTID and t2.OperationCode = 1280 
0
UPDATE `myTable` SET `CastLotNo` = (SELECT `LotNo` FROM `MyTable` WHERE `OperationCode` = '1280' LIMIT 1) WHERE `CastTID` = (SELECT `CastTID` FROM `MyTable` WHERE `OperationCode` = '1280' LIMIT 1) 

好像你可以使用類似的東西。目前我無法測試這個,所以讓我知道它是否需要調整。

0
WITH cte as (
    SELECT CastTID, LotNo 
    FROM Table1 
    WHERE OperationCode = 1280 
) 
UPDATE myTable T 
SET CastLotNo = (SELECT C.LotNo as CastLotNo 
       FROM cte C 
       WHERE C.CastTID = T.CastTID)