[英]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.