如何在SQL中按日期范围加入多个价格表?

时间:2017-07-20 03:20:17

标签: mysql sql

我是SQL的新手,我需要帮助通过匹配日期来附加表格。我有2个股票价格表(即Com A,Com B)从mysql生成。

他们如下(非详尽无遗):

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 

但是,我想用以下4列输出SQL查询结果(即date,Com A,Com B,Com A - 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之间的差异是绝对值。

1 个答案:

答案 0 :(得分: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 

请注意,您还可以在日期使用内部联接,这将根据您希望获得的内容返回一些不同的结果