关于形成树形结构,数据累加显示的有关问题

关于形成树形结构,数据累加显示的问题
关于形成树形结构,数据累加显示的有关问题

第一次发图不知道能看到吗。

ID TOPID  Money ISlast  ,name
通过 id  topid 进行分级。topid = “0000000”表示最上一级 islast = 1表示最后一级 

islast = 0表示不是最后一级

在数据库中只有islast = 1里的money有钱

最上级有好几个

我想实现的目标是。将上级的钱为其下集的钱的和。一级一级的相加。所有级数都有钱显示。

请大神们帮助下。。。我使用treetable已经将name形 成了树形表格,但是money列的钱不行。。。能通过数据库实现吗。我直接绑在标签上。




------解决思路----------------------
WITH 
/* 测试数据
table1(id,topid,money,isLast)AS(
    SELECT 1,0,0,0 UNION ALL
    SELECT 2,1,0,0 UNION ALL
    SELECT 3,1,100,1 UNION ALL
    SELECT 4,2,20,1 UNION ALL
    SELECT 5,2,30,1
), */
a AS (
    -- 取最后一级的金额
    SELECT id,topid,money
      FROM table1
     WHERE isLast = 1
    UNION ALL -- 每个金额的每个上级都递归生成一条明细
    SELECT p.id,p.topid,c.money
      FROM table1 p
      JOIN a c
        on c.topid = p.id
)
,b AS (
    SELECT id,
           SUM(money) money
      FROM a
  GROUP BY id
)
    SELECT *
      FROM b
  ORDER BY id

         id       money
----------- -----------
          1         150
          2          50
          3         100
          4          20
          5          30

把这个b和你的treetable用id关联起来。