如何计算分层表结构中子类别支出的父类别支出总和?

Posted

技术标签:

【中文标题】如何计算分层表结构中子类别支出的父类别支出总和?【英文标题】:How to calculate the sum of parent categories spend by the child category spend in hierarchical table structure? 【发布时间】:2016-03-18 04:27:43 【问题描述】:

我有以下表结构,其中我以分层格式存储了类别及其子类别,在表中只有最少的类别具有支出金额 (SPEND)。

现在我想创建一个视图或 SQL 查询,通过它我还可以获得每个类别级别的支出金额。以下是我想要得到的结果数据。

所以请帮我查询可以从数据库中获取上述结果的 SQL 查询。

【问题讨论】:

【参考方案1】:

有点像

select Level1, level2, level3, level4, level5, sum(spend)
from <your table name>
group by rollup(level1,level2,level3,level4,level5)
order by Level1, level2, level3, level4, level5

【讨论】:

感谢 Vasyl 的回答,它工作正常但返回重复记录,当我运行此 sql 时,它在上表中返回 35 行,其中一些行具有空白花费值,是否可以只返回每个带有支出金额的子类别都有一行。这是结果链接link 如果我理解正确,请尝试添加HAVING sum(spend) is not null 我添加了 HAVING sum(spend) is not null 并消除了具有空支出值的行,但它再次返回重复的行。这是结果链接link

以上是关于如何计算分层表结构中子类别支出的父类别支出总和?的主要内容,如果未能解决你的问题,请参考以下文章

优化基于分层数据的类别表

带有部分名称的 NSFetchedResultsController

Atitit 支出分类表 会计科目资产负债资本收益费用(成本) 资产分类表 attilax总结

Access 2010 SQL--在交叉表查询中按聚合函数对行进行排序

php sql中带有日期、变量类别和总和值的数据透视表

GROUP BY和HAVING 以及mysql中常用的日期函数