急! Oracle 两表查询问题
我是新手,怎么动态显示列名啊?大侠帮帮我吧!-------------------------------表1ID付款方式具体形式1001现金2002银行卡2003支票-...
我是新手,怎么动态显示列名啊?
大侠帮帮我吧!
-------------------------------表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),
Mon number
);
insert into Table_B values(1,'1001','001',100);
insert into Table_B values(2,'1001','002',200);
insert into Table_B values(3,'1001','003',300);
insert into Table_B values(4,'1002','001',150);
insert into Table_B values(5,'1002','003',250);
那位Oracle高手帮我解决下, 在下不胜感激!
问题补充:是要这样的结果:
生成如下统计(付款方式可以随时变化)
ID 商家 总金额 现金 银行卡 支票
1 1001 600 100 200 300
2 1002 400 150 0 250 展开
大侠帮帮我吧!
-------------------------------表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),
Mon number
);
insert into Table_B values(1,'1001','001',100);
insert into Table_B values(2,'1001','002',200);
insert into Table_B values(3,'1001','003',300);
insert into Table_B values(4,'1002','001',150);
insert into Table_B values(5,'1002','003',250);
那位Oracle高手帮我解决下, 在下不胜感激!
问题补充:是要这样的结果:
生成如下统计(付款方式可以随时变化)
ID 商家 总金额 现金 银行卡 支票
1 1001 600 100 200 300
2 1002 400 150 0 250 展开
2个回答
展开全部
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 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为支票
ZESTRON
2024-09-04 广告
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸...
点击进入详情页
本回答由ZESTRON提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询