我的数据库架构是这样的 -
Table - 1
-----------------------------------------------------------------------
|Src_Country_Code|Total_Src_Amount|Dest_Country_Code|Total_Dest_Amount|
-----------------------------------------------------------------------
我希望以下列形式输出 -
Country_Code||SrcAmount||Dest_Amount
Country_Code存在于Src_Country_Code和Dest_Country_Code中:例如 -
示例记录
abc|50|efg|100
efg|400|abc|200
输出如果我选择国家abc应该像 -
abc|50|200
此外,如果第二条记录不存在,则输出应为 -
abc|50|0
我尝试了很多变化,但似乎没有任何效果。帮助将不胜感激。
答案 0 :(得分:1)
像这样的东西
SELECT nvl(src.Src_Country_Code, dest.Dest_Country_Code) Country_Code,
nvl(Total_Src_Amount,0) Total_Src_Amount,
nvl(Total_Dest_Amount, 0) Total_Dest_Amount
FROM
(SELECT Src_Country_Code,
sum(Total_Src_Amount) Total_Src_Amount
FROM table1
GROUP BY Src_Country_Code) src
FULL JOIN src.Src_Country_Code = dest.dest_Country_Code
(SELECT Dest_Country_Code,sum(Total_dest_Amount) Total_dest_Amount
FROM table1
GROUP BY Dest_Country_Code) dest
答案 1 :(得分:0)
您可以使用如下的加入。
SELECT T1.Src_Country_Code,T1.Total_Src_Amount,T2.Total_Dest_Amount
FROM Table1 T1
LEFT JOIN Table1 T2 ON T1.Src_Country_Code = T2.Dest_Country_Code
工作小提琴 - http://sqlfiddle.com/#!9/34723/1