首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

多级分类汇总可以一条SQL语句搞定吗?解决思路

2012-02-03 
多级分类汇总可以一条SQL语句搞定吗?显示列表如:施工总产值|—铁路工程90000|-京九铁路50000|----广州到南

多级分类汇总可以一条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

热点排行