早起鸟儿 2015-10-30 09:39 采纳率: 0%
浏览 1720

oracle 向上汇总求助

with t as
(select 'r1'as 仓库ID, 'r0'as 上级仓库ID, '0001'as 备件编码, '3'as 数量 from dual
union all
select 'r1'as 仓库ID, 'r0'as 上级仓库ID, '0002'as 备件编码, '3'as 数量 from dual
union all
select 'r1'as 仓库ID, 'r0'as 上级仓库ID, '0004'as 备件编码, '3'as 数量 from dual
union all
select 'r2'as 仓库ID, 'r1'as 上级仓库ID, '0005'as 备件编码, '2'as 数量 from dual
union all
select 'r2'as 仓库ID, 'r1'as 上级仓库ID, '0002'as 备件编码, '3'as 数量 from dual
union all
select 'r2'as 仓库ID, 'r1'as 上级仓库ID, '0004'as 备件编码, '3'as 数量 from dual
union all
select 'r3'as 仓库ID, 'r2'as 上级仓库ID, '0006'as 备件编码, '2'as 数量 from dual
union all
select 'r3'as 仓库ID, 'r2'as 上级仓库ID, '0002'as 备件编码, '3'as 数量 from dual
union all
select 'r3'as 仓库ID, 'r2'as 上级仓库ID, '0004'as 备件编码, '3'as 数量 from dual
)
select *
from t s
order by 仓库ID

希望得到的结果是 :
仓库ID 上级仓库ID 备件编码 数量
r1 r0 0001 3
r1 r0 0002 9
r1 r0 0004 9
r1 r1 0005 2
r1 r1 0006 2

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 15:25
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这是一个SQL查询的问题。在Oracle数据库中,你可以使用WITH语句来定义一个视图(view),然后通过这个视图的SELECT语句来获取你想要的结果。

    以下是一个可能的解决方案:

    CREATE VIEW view_name AS
    SELECT *
    FROM t;
    
    SELECT *
    FROM view_name
    ORDER BY 1;
    

    在这个例子中,我们首先创建了一个名为view_name的视图,它包含了所有的原始数据。然后,我们从这个视图中选择了所有列,并按照仓库ID进行了排序。

    注意:这只是一个示例,实际的SQL语法可能会有所不同,具体取决于你的Oracle版本和环境。此外,你需要确保你有足够的权限来创建和查看这个视图。

    评论

报告相同问题?