2016-09-27 50 views
0

我正在使用SQL Server 2008並試圖執行更新語句,但我不清楚如何解決此問題。我甚至無法正確描述它以適應谷歌。SQL Server:更新語句中缺少的內容

update S 
set SlsTypId = 'Here' 
from SVSLS S 
join SVSLSOPS O on S.Slsid = O.SlsId 
where O.SlsTypId = 'Here' 
    and O.SlsTypId <> 'OnOrder' 

我遇到的麻煩是當slsid不同時使這個更新語句工作。

下面是一些樣本數據:提前

SLSID SLSTYPID OPSID 
------------------------- 
R001005288 SI 1 
R001005288 HERE 5 
R001005288 OnOrder 8 
R001005288 HERE 9 
R001057955 BI 1 
R001057955 BI 2 
R001057955 BI 3 
R001057955 BI 4 
R001057955 BI 5 
R001057955 HERE 6 
R001105960 BR 1 
R001105960 BR 2 
R001107237 SR 1 
R001107237 SR 2 
R001107237 SR 3 
R001107572 HERE 1 
R001107572 OnOrder 2 
R001107572 PDIS 3 
R001107572 PDIS 4 
R001107613 BR 1 
R001107613 BR 2 
R001107613 BR 3 
R001107613 BR 4 
R001107613 BR 5 

謝謝...

+0

什麼版本的SQL(例如MySQL,SQL Server)是你使用,因爲答案將高度依賴於此? –

+0

不需要這種情況O.SlsTypId <>'OnOrder'(因爲您已經在使用O.SlsTypId ='Here') – Poonam

+0

您列出了2個表並僅提供了1個表的信息。 – Poonam

回答

0

你好通過使用通配符匹配嘗試此查詢我想

O.SlsTypId LIKE '%OnOrder%'不會是必要的(有時)。希望它可以幫助你

update S 
set SlsTypId = 'Here' 
from SVSLS S 
INNER join SVSLSOPS O on S.Slsid = O.SlsId 
WHERE O.SlsTypId LIKE '%Here%' 
AND O.SlsTypId LIKE '%OnOrder%' 
+0

這工作!謝謝。 – brewer

+0

您好。感謝您是否真的對您有所幫助,請將其標記爲正確答案。 –

+0

這是我第一篇文章。我一直在環顧四周,但沒有看到它。你能告訴我如何標記這是一個正確的答案嗎? – brewer