向单个结果集输出2个不同的查询

时间:2015-04-14 06:50:05

标签: sql

我的数据库架构是这样的 -

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

我尝试了很多变化,但似乎没有任何效果。帮助将不胜感激。

2 个答案:

答案 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