SQL结合类似的表

dk9*_*96m 1 sql sql-server

我不确定它是否只是周一的脑屁,但我无法弄清楚如何将这两个表结合起来.

表格1

Year    Month          EMS
2014    October         1
2015    January         6
2015    February        1
2015    April           4
Run Code Online (Sandbox Code Playgroud)

表2

Year    Month          TaRR
2015    January         28
2015    February        6
2015    March           7
2015    April           5
Run Code Online (Sandbox Code Playgroud)

决赛桌

Year    Month           TaRR    EMS
2014    October          0       1
2015    January          28      6
2015    February         6       1
2015    March            7       0
2015    April            5       4
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,这两个表都有年份和月份,虽然一个表或另一个表可能一年缺少一个月,就像表2没有2014年10月那样.我怎样才能实现这一目标.

EzL*_*zLo 5

你想要一个FULL JOIN.完全连接有点像左右连接,因此即使另一个表上不存在匹配的记录,也会显示两个表的记录.

SELECT
    Year = ISNULL(T.Year, N.Year),
    Month = ISNULL(T.Month, N.Month),
    TaRR = N.TaRR,
    EMS = T.EMS
FROM
    Table1 AS T
    FULL JOIN Table2 AS N ON
        T.Year = N.Year AND
        T.Month = N.Month
Run Code Online (Sandbox Code Playgroud)

由于来自任何两个表的记录可能为null,您可能需要为它们设置默认值.

  • 您可能还想处理2个数据值的空案例...... (2认同)