一尘不染

在多个表上有多个FULL OUTER JOIN

sql

我有多个外部联接

SELECT  A.column2
        , B.column2
        , C.column2
FROM 
(
    (SELECT month, column2 FROM table1) A
    FULL OUTER JOIN
    (SELECT month, column2 FROM table2) B on A.month= B.month
    FULL OUTER JOIN 
    (SELECT month, column2 FROM table3) C on A.month= C.month
)

现在最后一个联接有一个问题,当A的月份大于B时,它会重复出现,但是如果B的月份比A多,则我们在C中有OUTER
JOIN,而A的月份又重复了,所以我想在FULL OUTER JOIN内两个表可能会解决问题??有任何深入的联系吗??

样本数据(不正确)

鈺斺晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暒鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暒鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晽
鈺�  Revenue   鈺� Budget  鈺� ActualMonth 鈺�
鈺犫晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暚鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暚鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暎
鈺�     6.9172 鈺� 3.5046  鈺� Jan         鈺�
鈺�     7.3273 鈺� 3.7383  鈺� Feb         鈺�
鈺�     7.3273 鈺� 3.9719  鈺� Mar         鈺�
鈺�     7.2726 鈺� 4.2056  鈺� Apr         鈺�
鈺�     7.2595 鈺� 6.7757  鈺� May         鈺�
鈺�     7.2726 鈺� 6.7757  鈺� Jun         鈺�
鈺�     0.41   鈺� 0.00    鈺� Jul         鈺�
鈺�     0.41   鈺� 0.00    鈺� Aug         鈺�
鈺�     0.41   鈺� 0.00    鈺� Sep         鈺�
鈺�     0.41   鈺� 0.00    鈺� Oct         鈺�
鈺�     7.4696 鈺� 0.00    鈺� Nov         鈺�
鈺�     7.4696 鈺� 0.00    鈺� Dec         鈺�
鈺�     0.00   鈺� 9.3457  鈺� Sep         鈺�
鈺�     0.00   鈺� 16.3551 鈺� Dec         鈺�
鈺�     0.00   鈺� 6.3084  鈺� Jul         鈺�
鈺�     0.00   鈺� 14.0186 鈺� Oct         鈺�
鈺�     0.00   鈺� 16.3551 鈺� Nov         鈺�
鈺�     0.00   鈺� 6.1915  鈺� Aug         鈺�
鈺氣晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暕鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暕鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暆

正确数据

鈺斺晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暒鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暒鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晽
鈺�  Revenue   鈺� Budget  鈺� ActualMonth 鈺�
鈺犫晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暚鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暚鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暎
鈺�     6.9172 鈺� 3.5046  鈺� Jan         鈺�
鈺�     7.3273 鈺� 3.7383  鈺� Feb         鈺�
鈺�     7.3273 鈺� 3.9719  鈺� Mar         鈺�
鈺�     7.2726 鈺� 4.2056  鈺� Apr         鈺�
鈺�     7.2595 鈺� 6.7757  鈺� May         鈺�
鈺�     7.2726 鈺� 6.7757  鈺� Jun         鈺�
鈺�     0.41   鈺� 6.3084  鈺� Jul         鈺�
鈺�     0.41   鈺� 6.1915  鈺� Aug         鈺�
鈺�     0.41   鈺� 9.3457  鈺� Sep         鈺�
鈺�     0.41   鈺� 14.0186 鈺� Oct         鈺�
鈺�     7.4696 鈺� 16.3551 鈺� Nov         鈺�
鈺�     7.4696 鈺� 16.3551 鈺� Dec         鈺�
鈺氣晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暕鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暕鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暆

阅读 172

收藏
2021-03-17

共1个答案

一尘不染

SELECT  A.column2
        , B.column2
        , C.column2
FROM 
(
    (SELECT month, column2 FROM table1) A
    FULL OUTER JOIN
    (SELECT month, column2 FROM table2) B on A.month= B.month
    FULL OUTER JOIN 
    (SELECT month, column2 FROM table3) C on ISNULL(A.month, B.month) = C.month
)
2021-03-17