2016-09-23 87 views
-1

如何使用最大行無記錄更新另一個表中的表數據?在另一個表中使用最大行無記錄更新表數據

我的表是這樣的:

表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:

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

現在我需要如下輸出:

表2:

| ID X1 X2 Client |Some_Value | 
| 1 ABCD 55 Dell | 123445 | 
| 1 ad 12 Dell | 123445 | 
| 2 asd 1234 HP  | 223  | 
| 2 asd 34 HP  | 223  | 
| 3 asd 2345 Dell | 5563 | 
| 3 ads 45 Dell | 5563 | 
+0

的ID在你需要的輸出中,它是從ID表1或表2? – GuidoG

+0

這是你的table2中的主鍵和外鍵嗎? – 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,然後加入你的表:

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; 
相關問題