SQL外连接时间序列包含不同时间的数据

时间:2016-12-20 04:33:47

标签: mysql

我试图使用SQL将多个项目的多个Cash Flows表合并到一个表中。我正在使用的查询列在下面,

SELECT  a.DATE1, b.DATE2, a.CF1, b.CF2
FROM a
FULL OUTER JOIN b 
ON b.DATE2= a.DATE1

,结果表列在下面,

enter image description here

由于现金流量在不同日期针对不同项目进行,其中一些可能在同一天发生,有些可能不会。我想知道如何调整我的代码,以便结果看起来像这样,

enter image description here

我们将前两个日期列组合在一起。如果另一个为NULL,则保留日期值,如果现金流在同一天发生,则删除重复值。

由于我需要组合多个项目,因此该方法应该具有强大的扩展性。

我试过使用以下内容,

SELECT  ISNULL(a.DATE1, '') + ISNULL(b.DATE2, ''), a.CF1, b.CF2
FROM ...

但是,这只解决了NULL部分,实际上会添加重复的日期,并导致新的日期。

感谢任何帮助,并提前多多感谢!

1 个答案:

答案 0 :(得分:1)

尝试使用coalesce()。

        SELECT  coalesce(a.DATE1, b.DATE2)as date, a.CF1, b.CF2
        FROM a
        FULL OUTER JOIN b 
        ON b.DATE2= a.DATE1