csy665 2019-01-23 15:47 采纳率: 0%
浏览 350

oracle创建树形视图,如何实现根节点的某数值字段为其下叶子字段的和?

两张表,项目表和子项表,子项属于项目,一个项目对应多个子项,没有外键约束,但子项表记录了项目的编号可以通过这个编号找到对应。
子项还有对应的合同表,也是一对多的关系,首先合同表group by子项编号取出没个子项的总合同额,子项表left join把总合同额带着。然后和项目表union已项目编号为parentID,项目的总合同额就是其下所有叶子子项的合同额的汇总。
prj_subprj 子项表,prj_prj项目表,agree子项合同表

SELECT
    sp.subprjno AS BH,
    sp.subprjname AS MC,
    ag.amount AS HT,
    sp.prjno AS PARENT
FROM
    (
        SELECT
            ps.subprjno,
            ps.subprjname,
            ps.prjno
        FROM
            prj_subprj ps
    ) sp
LEFT JOIN (
    SELECT
        A .subprjno,
        SUM (A .amount) AS amount
    FROM
        agree A
    GROUP BY
        A .subprjno
) ag ON sp.subprjno = ag.subprjno
UNION
    SELECT
        pp.prjno AS BH,
        pp.prjname AS MC,
        NULL AS HT,
        NULL AS PARENT
    FROM
        prj_prj pp

项目的总合同额如何从叶子节点的子项合同额汇总过来,创建这个视图

  • 写回答

1条回答 默认 最新

  • ghq-yes 2019-01-23 17:12
    关注

    不知道是不是没弄清楚你的需求,总感觉你写的太麻烦了
    select ps.prjno ,
    ps.prjname ,
    count(a.amount) as allamount
    from prj_prj ps,prj_subprj sp,agree a where ps.xxx=sp.xxx and sp.xxx=a.xxx group by ps.prjno , ps.prjname ,

    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?