2013-08-26 47 views
-1

考慮兩列col_1col_2,第一個來自table_1,第二個來自table_2(兩列的數據類型相同)。SQL中的列乘法

我需要將col_1的第一行乘以col_2的第一行,將第二行的col_1乘以col_2的第二行等等。

結果應存儲在col_3(給出的任何表格)各自的行中。

例如:

http://i.stack.imgur.com/rd7zW.png

所以,請給我建議,我需要寫什麼查詢。

+1

是否有其定義錶行之間的關係的任何鍵?換句話說,table_1中是否有與table_2對應的ID列? –

+0

沒有任何鑰匙,斯圖爾特 –

+0

好的表1和表2與任何領域上的彼此相關,甚至那些領域都不是鑰匙?否則我怎麼知道表1行1匹配表2行1而不是行3,因爲表1有行1和2刪除? – xQbert

回答

0
INSERT INTO table_3 (col_1) 
SELECT a.col_1 * b.col_1 
FROM table_1 a 
INNER JOIN table_2 b 
ON a.id = b.id; 

編輯:

如果是在TABLE_1,那麼你可以只更新col_3:

UPDATE table_1 
    SET col_3 = a.col_1 * b.col_1 
    FROM table_1 a 
    INNER JOIN table_2 b 
    ON a.id = b.id; 

就命令而言,無關緊要,因爲它與行ID匹配。

更新SQLFiddle:http://sqlfiddle.com/#!3/605da/4

+0

如果Col_3是Table_1的呢? –

+0

另外,假設如果ID在table_2中不是升序或降序,而是在table_1中升序排列。 –

+0

其工作感謝你乍得 –

0

您可以在SELECT語句中放入內聯數學來完成此操作。假設你有一個ID列,以匹配兩個源表:

SELECT Table1.Col1, Table2.Col2, (Table1.Col1 * Table2.Col2) AS 'Col3' 
FROM Table1 
INNER JOIN Table2 ON Table1.ID = Table2.ID 
+0

但是我還需要填寫col_3 –

+0

讓Col_3在table_1中,它是空白的。 –