2010-01-01 82 views
2

我是SQL的新手。請幫忙。 我有下面的SQL更新公司股票=來自另一個表,有很多記錄「太陽報」,我只需要使用一個記錄匹配'浮動'表的一個表SQL語句 - 更新兩個表

下面的工作,如果我說'太陽',但是,我想爲4000+股票代碼做這個。我該怎麼做?

UPDATE dbo.Company 
SET dbo.Company.[Float] = 
    (SELECT dbo.yahoo.[Value Mast] 
      FROM dbo.yahoo 
      WHERE dbo.yahoo.[Value Category]= 'Float' and dbo.yahoo.symbol = 'SUN') 
Where dbo.Company.tick = 'SUN' 

表公司看起來像 -

Tick 
Float

表雅虎看起來像 符號 價值categoty 值MAST(我更新的運營商表這個值(這裏FLOAT價值範疇之一) for value category = float

謝謝

回答

2

試試這個:

UPDATE Company 
SET [Float] = yahoo.[Value Mast] 
FROM 
    yahoo 
    INNER JOIN Company ON yahoo.symbol = Company.tick 
WHERE 
    yahoo.[Value Category]= 'Float' 

加入可以在UPDATE的FROM語句中使用,只要你只能更新一個表。

+0

感謝它的工作就像一個魅力。 新年快樂! – Akhit 2010-01-01 23:43:57

0

這將更新值o如欲在Company所有行Float

UPDATE 
    dbo.Company 
SET 
    dbo.Company.[Float] = (
    SELECT 
     dbo.yahoo.[Value Mast] 
    FROM 
     dbo.yahoo 
    WHERE 
     dbo.yahoo.[Value Category] = 'Float' 
     AND dbo.yahoo.symbol = dbo.Company.tick 
) 

現在的子查詢引用外部查詢來獲取符號名稱查找。

1

這是我的朋友是更新連接的工作。

update company set [float] = y.[value mast] 
from 
    company c 
    inner join yahoo y 
     on y.symbol = c.tick 
     and y.[value category] = 'float'