最近,我正在查询数据以形成SQL新手公司的报告。如何使用SQL计算父亲器官统计信息
我有孩子器官的原始数据,同时,我还需要计算总量的它的上级机构。
我已经使用全外连接把所有的器官一起在一个表中,增加一列“parent_organ”,以表明自己的关系,在图中所示:
我有一些时间使用低于SQL查询,但失败了,任何人都可以帮忙吗?谢谢。
SELECT ORGAN,
SUM(CASE WHEN parent_organ LIKE '%'||ORGAN||'%' THEN
sales
ELSE 0 END) AS sales_sum
FROM table GROUP BY organ
您正在使用哪些DBMS? –
你真的在你的表格中以逗号分隔列表的形式存储父代器官吗?这是一个**非常糟糕的设计。你应该[编辑]你的问题,并将'create table'语句添加到你的问题。 [_Formatted_](http://stackoverflow.com/help/formatting)文本请[无屏幕截图](http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images代码提示/ 285557#285557) –
@a_horse_with_no_name:我们正在使用DB2 10.5。这是一个遗留表格,同意你的糟糕设计。我简化了我的问题。事实上,该表具有五个层次的器官,即A∈B∈C∈D∈E,其中只有A,最低层次具有真实的商业数据,所有父母的(B,C,D,E)统计应该是通过将它们相加来计算。还有很多像A和B,C,D,E这样的器官。我知道这个问题可以通过使用SP并创建一个新表来保存数据来解决。但想用SQL查询来解决这个问题 –