我有多个外连接
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有更多的月份,那么我们在C中有了外部加载的A,而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 ║ ╚════════════╩═════════╩═════════════╝
解决方法
SELECT A.column2,column2 FROM table3) C on ISNULL(A.month,B.month) = C.month )