【发布时间】:2020-07-01 00:20:22
【问题描述】:
对于所有 Oracle SQL 专业人士,我正在尝试使用数据透视表将多行转换为一列。我尝试查看过去的帖子,但找不到与我想做的事情相关的任何内容,或者我只是不知道如何正确搜索它。我想将 HAND、PECO、CHEP 行放入称为 EXTRA 的 1 列中,同时将 STORAGE 和 RENEWAL 作为它们自己的单独列。我很难过,任何帮助将不胜感激。提前致谢!
我现在的sql是,
select * from (
select company, customer, rev_code, sum(rev_amt) amt
from revenue_anal
where company='01'
and rev_date between to_date('20\01\01','YY\MM\DD') and sysdate
group by company, customer, rev_code
order by 2,1 )
pivot (sum(amt) for rev_code in ('HAND', 'PECO', 'CHEP', 'STORAGE', 'RENEWAL'))
Query,
COMPANY | CUSTOMER | REV_CODE | REV_AMT
---------------------------------------------------
01 | 101962 | HAND | 253.377
01 | 101962 | PECO | 60
01 | 101962 | CHEP | 1632
01 | 101962 | STORAGE | 2700
01 | 101962 | RENEWAL | 60
---------------------------------------------------
Output with my current query,
COMPANY | CUSTOMER | HAND | PECO | CHEP | STORAGE | RENEWAL
--------------------------------------------------------------------------
01 | 101962 | 253.377 | 60 | 1632 | 2700 | 60
Trying to get the output to show as
COMPANY | CUSTOMER | EXTRA | STORAGE | RENEWAL
------------------------------------------------------------------
01 | 101962 | 1945.377 | 2700 | 60
感谢您抽出宝贵时间提供帮助。
【问题讨论】:
标签: sql oracle oracle11g pivot