多级分类汇总可以一条SQL语句搞定吗?
显示列表如:
施工总产值
|—铁路工程 90000
|-京九铁路 50000
|----广州到南昌段 30000
|----其他段 20000
|- 漳龙铁路 40000
|—公路工程 50000
还有很多统计字段,我就只挑了一个字段出来做例子
我大概讲一下表结构(不是我设计的)
产值表:Dicdata 只有对应标段 SegmentId
标段表:Dicsegment 表示某工程的一段 标段名称:SegmentName,有个所属项目字段 ProjectId
工程信息表:Dicproject 有个所属工程类别字段ProjectType(存NodeCode的值),ProjectName(项目名称)
工程类别表:Dicpcate 工程类别名称NodeName,主键:NodeCode
[解决办法]
select SegmentId,SegmentId,ProjectType , sum(col) from
(
select SegmentId,SegmentId,ProjectType........from a,b,c,d where...........
) t
group by SegmentId,SegmentId,ProjectType
with rollup
意思是将要统计的字段合成一个为子表,然后对这个字表进行group by