读书人

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

发布时间: 2012-02-03 22:02:47 作者: rapoo

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

读书人网 >SQL Server

热点推荐