sql - 将一个变量中的不同值组合在一起
问题描述
是否可以将一个字段中的多个值组合在一起?例如,在 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
解决方案
您想使用条件聚合。是的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;
推荐阅读
- javascript - 控制台是怎么回事?
- r - 基于ggplot r中数字大小的刻度标签中小数的条件格式
- javascript - 如何每次都附加到div中的相同位置?
- python - Docker无法检测到项目
- python - 应用排序后从列表中提取重复项
- kubernetes - 为什么在我的主机上使用 gcloud 命令而不是 gcloud 交互式 shell 这么难?
- python - 从 Json 页面抓取网页但 HTTPError: HTTP Error 400: Bad Request
- android - 如何借助经纬度在谷歌地图上绘制路线?
- java - 即使在所需条件下也看不到任何异常消息
- c# - 如何在函数中获得主动控制?