2010-01-01 4 views
2

저는 SQL의 초보자입니다. 이것으로 도와주세요. 시세 'SUN'에 대한 많은 레코드가있는 다른 테이블에서 회사 시세 표시기 = SUN에 대한 테이블을 업데이트하는 SQL이 있는데 'Float'과 일치하는 레코드를 하나만 사용해야합니다.SQL 문 - 두 테이블에 대한 업데이트

아래 상태가 ' 그러나 SUN '은 4000 + 티커 심볼에 대해이 작업을 수행하려고합니다. 어떻게해야합니까? 테이블 야후가 기호 값 categoty 값 마스트 (I는 회사의 테이블에서이 값을 업데이트하고 (여기 FLOAT되는 값 범주 중 하나)과 같은

Tick 
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 = 'SUN') 
Where dbo.Company.tick = 'SUN' 

테이블 회사 보인다 값 범주에 대해 =

감사

답변

2

이 시도 : 당신은 단지 하나 개의 테이블을 업데이트 할

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

는 한 갱신 사항의 FROM 문에서 사용할 수 있습니다 조인.

+0

감사합니다. 그것은 매력처럼 작동했습니다. 새해 복 많이 받으세요 !! – Akhit

0

을 떠이 값 O를 업데이트합니다 F 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'