繁体   English   中英

总和列Oracle

[英]sum column Oracle

您好,我在3个表格中有数据,代码如下。

甲骨文

 select distinct 
 t2.coll_no,
 t1.account_number,
 t1.commitment_number,
 t3.APPRAISAL_AMT

 from table1 t1
 LEFT JOIN table2 t2
 ON T2.OBLIGATION_ACCOUNT_NUMBER = T1.ACCOUNT_NUMBER
 AND T2.OBLIGATION_NUMBER = T1.COMMITMENT_NUMBER
 LEFT jOIN table3 t3
 ON t3.COLL_NO = t3.cOLL_NO

每个coll_no具有不同的afs_appraisal数量。

我希望只用5个评估金额的总和作为一行,而不是5个评估价值的唯一差异。

假设您的语法/逻辑是正确的,则需要在t3.APPRAISAL_AMT和GROUP BY上加上一些其他属性,这些属性在我下面假设为t2.coll_no。

select distinct 
   t2.coll_no,
   t1.account_number,
   t1.commitment_number,
   SUM(t3.APPRAISAL_AMT)

 from table1 t1
 LEFT JOIN table2 t2
   ON T2.OBLIGATION_ACCOUNT_NUMBER = T1.ACCOUNT_NUMBER
   AND T2.OBLIGATION_NUMBER = T1.COMMITMENT_NUMBER
 LEFT jOIN table3 t3
   ON t3.COLL_NO = t3.cOLL_NO
 GROUP BY t2.coll_no

我认为您只需要条件聚合:

select sum(case when t2.coll_no = <val1> then t3.appraisal_amt end) as appraisal_1,
       sum(case when t2.coll_no = <val2> then t3.appraisal_amt end) as appraisal_2,
       sum(case when t2.coll_no = <val3> then t3.appraisal_amt end) as appraisal_3,
       sum(case when t2.coll_no = <val4> then t3.appraisal_amt end) as appraisal_4,
       sum(case when t2.coll_no = <val5> then t3.appraisal_amt end) as appraisal_5
from table1 t1 left join
     table2 t2
     on T2.OBLIGATION_ACCOUNT_NUMBER = T1.ACCOUNT_NUMBER and
        T2.OBLIGATION_NUMBER = T1.COMMITMENT_NUMBER left join
     table3 t3
     on t3.COLL_NO = t3.cOLL_NO;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM