1.需求如图;2. 貌似图挂了:
表1:编码,数量1,金额1
表2:编码,数量2,金额2
表3:编码,数量3,金额3
-----最后我想要的结果是: 编码 数量1 金额1 数量2 金额2 数量3 金额3
把这些字段按照列输出,当三个表的编码相等时,显示的一行上。
例,表1中的编码 ,表2和表3不存在 ,
则显示 为: 编码 数量1 金额1 0 0 0 0
表1:编码,数量1,金额1
表2:编码,数量2,金额2
表3:编码,数量3,金额3
-----最后我想要的结果是: 编码 数量1 金额1 数量2 金额2 数量3 金额3
把这些字段按照列输出,当三个表的编码相等时,显示的一行上。
例,表1中的编码 ,表2和表3不存在 ,
则显示 为: 编码 数量1 金额1 0 0 0 0
解决方案 »
- 是不是可以通过固定执行计划 强制查询不通过索引
- oracle group_concat运用,有兴趣请进
- 请教,在SQL语句中碰到一个很头痛的时间比较问题,不知道该如何解决
- WINDOWS 2003下如何利用数据源连接数据库?
- 请问我在企业管理器设置了备份,但在作业状态里查询是失败
- LINUX下怎么装ORACLE?/用的盘是不是和WINDOWS的盘不一样,要买LINUX环境的吗???
- 关于“Oracle数据库整机移植技术”的文章,请大家看看并参与讨论。
- 求一循环更新数据的语句或存储过程
- 用户和实例的关系是怎么样的?怎么建一个实例?
- 在oracle的存储过程中怎么把long转换为date?
- oracle所有管理员账户都不能登陆
- 使用Navicat Premium链接oracle 12c,出现Only compatible with oci version 8.1 and higher
with taba ("编码","数量1","金额1")
as
(
select 1,11,111 from dual union all
select 2,22,222 from dual union all
select 3,33,333 from dual
),tabb ("编码","数量2","金额2")
as
(
select 1,11,111 from dual union all
select 2,22,222 from dual
),tabc ("编码","数量3","金额3")
as
(
select 1,11,111 from dual
)
select a."编码",
a."数量1",
nvl(a."金额1", 0),
nvl(b."数量2", 0),
nvl(b."金额2", 0),
nvl(c."数量3", 0),
nvl(c."金额3", 0)
from taba a, tabb b, tabc c
where a."编码" = b."编码"(+)
and a."编码" = c."编码"(+)
as
(
select 1,11,111 union all
select 2,22,222 union all
select 3,33,333
),tabb ("编码","数量2","金额2")
as
(
select 1,11,111 union all
select 2,22,222
),tabc ("编码","数量3","金额3")
as
(
select 1,11,111
)SELECT *
FROM taba
LEFT JOIN tabb ON tabb.编码 = taba.编码
LEFT JOIN tabc ON tabc.编码 = taba.编码