2017-07-20 64 views
1

我是SQL新手,我需要通過匹配日期來追加表格。我有兩個由mysql生成的股票價格表(即Com A,Com B)。如何在SQL中按日期範圍加入多個價格表?

它們是遵循(非詳盡):

Com A 
Date      Price 
2015-05-01 00:00:00.000 34.25 
2015-05-02 00:00:00.000 35.20 
2015-05-03 00:00:00.000 36.70 
2015-05-04 00:00:00.000 32.37 
2015-05-05 00:00:00.000 32.40 
2015-05-06 00:00:00.000 32.20 


Com B 
Date      Price 
2015-05-01 00:00:00.000 54.29 
2015-05-02 00:00:00.000 54.50 
2015-05-04 00:00:00.000 56.21 
2015-05-05 00:00:00.000 56.70 
2015-05-06 00:00:00.000 58.20 

不過,我想輸出SQL查詢結果有以下4列(即日期,COM之間,玉米B,COM之間 - 的COM B):

Date      Com A Com B Com A - Com B 
2015-05-01 00:00:00.000 34.25 54.29 20.04 
2015-05-02 00:00:00.000 35.20 54.50 19.30 
2015-05-03 00:00:00.000 36.70 NULL 36.70 
2015-05-04 00:00:00.000 32.37 56.21 23.84 
2015-05-05 00:00:00.000 32.40 56.70 24.30 
2015-05-06 00:00:00.000 32.20 58.20 26.00 

注意的COM A和的COM B之間的差在絕對值。

回答

2

您需要非標準的連接操作與ABS功能檢查絕對值

select a.date, 
     IFNULL(a.price, 0) as comA, 
     IFNULL(b.price, 0) as comB, 
     ABS(a.price - b.price) as ComA_ComB 
from com_A a left join com_B b on a.date = b.date 

請注意,您也可以使用日期內連接,這將根據你希望得到

什麼返回有點不同的結果
+0

嗨哈提克,謝謝你的回覆!實際上,我需要更多的2個表的連接,也就是輸出Date,Com A,Com B和ComA_ComB。 – fauxpas

+0

@JeffersonLow,你好,我不明白你輸出日期的意思,請你提供更多的解釋,或者可以編輯你想要的結果的問題 – Hatik

+0

希望這會讓事情變得更加清晰!我編輯了這個問題。 – fauxpas