2016-09-23 2 views
-1

다른 테이블의 레코드가없는 최대 레코드를 사용하여 테이블 데이터를 업데이트하려면 어떻게해야합니까?다른 테이블의 최대 레코드 없음 레코드를 사용하여 테이블 데이터 업데이트

내 테이블은 다음과 같습니다

표 :

| ID | Client | Some_Value |Row_No | 
| 1 | HP  | 123   | 1 | 
| 1 | HP  | 1245  | 2 | 
| 1 | Dell | 123445  | 3 | 
| 2 | HP  | 111   | 1 | 
| 2 | HP  | 223   | 2 | 
| 3 | Dell | 34   | 1 | 
| 3 | Dell | 5563  | 2 | 

표 2 :

표 2 :

0,123,279,617,571,285,174,822,128,384

| ID X1  X2  Client | Some_Value | 
| 1 ABCD 55  |  | 
| 1 ad  12  |  | 
| 2 asd 1234  |  | 
| 2 asd  34  |  | 
| 3 asd 2345  |  | 
| 3 ads  45  |  | 

는 이제 다음과 같이 출력이 필요합니다 당신은 같은 쿼리를 사용할 수있는3210

+0

의 ID,이 표 1 또는 표 2에서 ID입니다? – GuidoG

+0

테이블 2의 기본 키와 외래 키는 무엇입니까? – Ashu

+1

이미 시도한 SQL 문은 어디에 있습니까? 두 테이블 사이의 공통 열은 무엇입니까? –

답변

-1


,

select t1.ID,t2.X1,t2.X2,t1.Client,t1.Some_value from table1 t1 
inner join table2 t2 on 
t1.ID=t2.ID 
+0

무엇이 t2입니까 ???? – Ashu

0

사용 ROW_NUMBER 다음이 테이블 조인 당신의 필요 OUPUT에

WITH CTE AS 
(
    SELECT *, 
      RN = ROW_NUMBER() OVER(PARTITION BY ID ORDER BY Row_No DESC) 
    FROM Table1 
) 
UPDATE t2 
SET t2.Some_Value = t1.Some_Value 
FROM Table2 t2 
INNER JOIN CTE t1 
    ON t2.ID = t1.ID 
WHERE t1.RN = 1; 
관련 문제