急! Oracle 两表查询问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 14:06:23
我是新手,怎么动态显示列名啊?
大侠帮帮我吧!

-------------------------------表1
ID 付款方式 具体形式
1 001 现金
2 002 银行卡
2 003 支票

-------------------------------表2
ID 商家 付款方式 付款金额
1 1001 001 100
2 1001 002 200
3 1001 003 300
4 1002 001 150
5 1002 003 250

生成如下统计(付款方式可以随时变化)
ID 商家 总金额 现金 银行卡 支票
1 1001 600 100 200 300
2 1002 400 150 0 250

--两张表我知道怎么写, 但是它需要查出表1的'具体形式'作为结果的列名,这个我就不会了~!!

--测试数据:
Create table Table_A
(
t_ID number,
TypeID varchar2(10),
TypeName varchar2(10)
);
insert into Table_A values(1,'001','现金');
insert into Table_A values(2,'002','银行卡');
insert into Table_A values(3,'003','支票');

-------------------------------------------------
Create table Table_B
(
t_id2 Number,
Company varchar(10),
TypeID varchar2(10),

select ze.Company,ze.Mon,nvl(xj.Mon,0),nvl(yhk.Mon,0),nvl(zp.Mon,0) from
(select Company,sum(Mon) Mon from Table_B group by Company) ze,
(select Company,sum(Mon) Mon from Table_B where TypeID='001' group by Company) xj,
(select Company,sum(Mon) Mon from Table_B where TypeID='002' group by Company) yhk,
(select Company,sum(Mon) Mon from Table_B where TypeID='003' group by Company) zp
where ze.Company=xj.Company(+)
and ze.Company=yhk.Company(+)
and ze.Company=zp.Company(+);

说明:上面的写法比较啰嗦,但是比较容易理解
ze为总额
xj为现金
yhk为银行卡
zp为支票

select t1.id,t2.shangjia,t3.totalcount,t1.xianjin
t1.yinhangka,t1.zhipia
from table1 t1,table2 t2--- 取别名
(select sum(jin,er)from t2 group by id) t3
----先分组类加总金额

where t1.id=t2.id
and t2.id=t3.id