1、首先确定数据源,也就是你要行转列的数据,如下图我是想要查询jici
假设现在有三张表,一张类别表,一张员工表,一张交易明细表
create table kinds( name varchar2(32) ,code char(2));
insert into kinds(name, code) values('name1','01');
insert into kinds(name, code) values('name1','02');
insert into kinds(name, code) values('name1','03');
insert into kinds(name, code) values('name1','04');
create table trade_dtl(empid number(5),empname varchar2(9),kind_code char(2),amount number(10,2),trade_date varchar2(8));
insert into trade_dtl(empid, empname, kind_code, amount, trade_date) values(1,'张三','01',100,'20151202');
insert into trade_dtl(empid, empname, kind_code, amount, trade_date) values(1,'张三','02',100,'20151102');
insert into trade_dtl(empid, empname, kind_code, amount, trade_date) values(2,'李四','03',100,'20151102');
insert into trade_dtl(empid, empname, kind_code, amount, trade_date) values(2,'李四','04',100,'20151202');
现在要看每个人每种商品汇总信息,可以写如下语句
select *
from(select d.empid,d.empname,d.kind_code,d.amount
from trade_dtl d)
pivot(sum(amount) as amount,count(1) as num for kind_code in
('01' name1,'02' name2,'03' name3,'04' name4))