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

coolbird8 2015-11-06 06:29:15


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

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

islast = 0表示不是最后一级

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

最上级有好几个

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

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



...全文
247 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2015-11-09
  • 打赏
  • 举报
回复
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关联起来。
Tiger_Zhao 2015-11-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 a504268 的回复:]楼上的是2层父子关系的[/Quote]
不懂不要乱说!
递归表达式没有层次限制。
洞穿秋水 2015-11-09
  • 打赏
  • 举报
回复
这是典型的父子维吧,把父子关系拉成横向的,就可以了,楼上的是2层父子关系的,你的关系复杂要写个循环

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧