首页 > 解决方案 > 将一个变量中的不同值组合在一起

问题描述

是否可以将一个字段中的多个值组合在一起?例如,在 Account 中,它们的合同类型为 P、S、O。我需要将合同金额 S 和 O 加在一起,然后单独留下 P。

我努力了:

select Contract_ID, Case when contract_type in ('S', 'O')then sum(to_char(nvl(contract_amount,0), '000000.99' )) when contract_type = 'P' then sum(to_char(nvl(contract_amount,0), '000000.99' ))End as Contract_Amount

sum (Case when contract_type in ('S', 'O') then to_char(nvl(contract_hours,0), '000000.99')) when contract_type = 'P' then to_char(nvl(contract_hours,0), '000000.99')) End as Contract_Hours

from Contract group by Contract_id Contract_type

标签: sqlgroup-by

解决方案


您想使用条件聚合。是的case论据sum()。像这样的东西:

select Contract_ID,
       sum(Case when contract_type in ('S', 'O') then contract_amount 
           End) as Contract_Amount,
       sum(Case when contract_type in ('S', 'O') then contract_hours
           End) as Contract_hours
from Contract
group by Contract_id;

推荐阅读