我是SQL的新手。请帮忙。 我有以下SQL更新公司ticker = SUN的表来自另一个表,该表有许多记录为'SUN'的记录,我只需要使用一个匹配'Float'的记录
如果我说'SUN',下面的作品会有效,但是,我想为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表雅虎看起来像 符号 价值分类(这里的价值类别之一是FLOAT) 值mast(我在公司表中为值类别= float 更新此值
感谢
答案 0 :(得分: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语句中使用联接。
答案 1 :(得分: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'
答案 2 :(得分:0)
这会为Float
中的所有行更新Company
的值:
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
)
子查询现在引用外部查询以获取要查找的符号名称。