我有一个简单的问题,我需要快速解决。你能帮我借你一下吗?使用动态列名的Oracle SQL转置
问题如下:我有两个表,一个定义表和一个历史表。
create table revenue history(operation_date date, revenue_id number, total_revenue number);
create table revenue_definition(revenue_id number, revenue_name varchar2(100));
insert into revenue_definition values(1,'Car');
insert into revenue_definition values(2,'Minivan');
insert into revenue_definition values(3,'Bus');
insert into revenue history values(sysdate-2,1,100);
insert into revenue history values(sysdate-2,2,150);
insert into revenue history values(sysdate-2,3,100);
insert into revenue history values(sysdate-1,1,200);
insert into revenue history values(sysdate-1,2,150);
insert into revenue history values(sysdate-1,3,200);
insert into revenue history values(sysdate,1,100);
insert into revenue history values(sysdate,2,150);
insert into revenue history values(sysdate,3,100);
现在我需要做的就是展示一个像这样的报告;
operation_date汽车面包车总线
SYSDATE 100 150 100
SYSDATE-1 200 150 200
SYSDATE-2 100 150 100
我知道我可以通过使用解码要这样做或在11g支点。但对于那些需要事先知道收入类型(汽车,面包车等)的人,每次定义时都需要更新我的代码。如果可能,我想避免这种情况。
欢迎任何建议,
谢谢。