[英]How to join multiple price tables by date range in SQL?
我是SQL的新手,我需要在匹配日期后追加表的帮助。 我有2表从MySQL生成的股票价格(即Com A,Com B)。
它们如下(不详尽):
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查询结果(即日期,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之间的差是绝对值。
您需要具有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
请注意,您还可以在日期上使用内部联接,这将根据您希望获得的结果返回一些不同的结果
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.