Sql 如何从oracle获得最高的父级金额
我有两个表customer和hierarchy,如下所示:Sql 如何从oracle获得最高的父级金额,sql,oracle,Sql,Oracle,我有两个表customer和hierarchy,如下所示: Customer Table Hierarchy Table Pty Amount SID Parent Child 100 10 01 1 2 200 20 02
Customer Table Hierarchy Table
Pty Amount SID Parent Child
100 10 01 1 2
200 20 02 2 3
100 20 03 3 100
1 200
我想获取总的父级交易金额,但父级没有任何
客户表中的数据。如何只使用层次结构查询来映射这两个表,并将所有子表的值都映射到父表
我目前的问题如下,但不符合我的目的
Select Sum(c.amount),c.pty from customer c
right outer join hierarchy h on c.pty=h.child
where h.parent in (select (m.child) as parent from hierarchy m
Connect By Prior child=parent
start with m.child=1
) group by c.pty
Result is as follows:
Amount Pty
30 2
null 1
But When I pass 1 as parameter I should get
Amount Pty
50 1
When 2 is passed to the query, the result should be
Amount Pty
30 2
非常感谢您的帮助
select root, sum(nvl(amount, 0)) s from (
select level, h.child, h.parent, c.amount, connect_by_root h.parent root
from customer c right join hierarchy h on c.pty = h.child
--start with h.parent = 1
connect by prior child = parent
) group by root;
如果要查找某个父级的sum,只需取消注释,从开始
按根连接\u是一个一元运算符,显示层次结构的根值
此查询从层次结构表中的每一行开始,并查找所有子项
connect\u by\u root有助于识别根父节点解释输出规则。感谢您的回复。此查询工作正常,并向我提供了全部金额详细信息。:)但是如何在不使用“开始日期”的情况下仅使用所选项目的记录筛选列表?示例:一次仅显示父级1或父级2的金额。@psobhan…),其中逐根根根在(1,2)组中;