2014-12-02 35 views
0

我很难排除这个简单的任务。我会给你一个我想要做的例子。我想在报表生成器矩阵中创建一个前5名的列表,然后我想要将剩余的“剩余”值汇总并将其命名为Other。矩阵在报表制作工具中排在最前面的列表

到目前为止,我已经在一个组内创建了一个前5名单,添加了一个新行并创建了其他值的底部列表。我无法将其他值汇总到一行。这是我想得到一些帮助。

名单看​​起来是这样的:

国家价值

USA_____10

Canada__9

Mexico___8

Spain____7

France___6

Germany__5

Italy______4

Greece___3

Norway___2

Total_____54

而且我想目前的名单如下:

国家价值

USA____10

Canada_9

Mexico__8

Spain___7

France__6

Other___14 *

Total____54

回答

0

检查此SQL Statemen t: 定制您的查询

select ROW_NUMBER()over(order by Points desc)ID,* into #Tmp from 
(select 'USA'Country,10 Points 
union all 
select 'Canada',9 
union all 
select 'Mexico',8 
union all 
select 'Spain',7 
union all 
select 'France',6 
union all 
select 'Germany',5 
union all 
select 'Italy',4 
union all 
select 'Greece',3 
union all 
select 'Norway',2)P 

declare @min int=(select min(ID) from #Tmp), 
@max int=(select min(ID)+4 from #Tmp) 

--select * from #Tmp 
select 
     Case when ID between @min and @max then Cast(ID as varchar)+' '+Country else 'Others' end Sort, 
     Case when ID between @min and @max then Country else 'Others' end Country, 
     Sum(Cast(Points as numeric(18,2)))Points 
from #Tmp 
group by Case when ID between @min and @max then Cast(ID as varchar)+' '+Country else 'Others' end, 
     Case when ID between @min and @max then Country else 'Others' end 
order by Sort 

drop table #Tmp 
+0

您好Manoj,谢谢您的回答。这是一个很好的解决方案,但不是我正在寻找的不幸。我意识到我忘了写我正在使用Tabular Cube。在我的Tablix中,我使用了多种度量方法,并基于其中的一种方法创建顶级列表,然后将剩下的值分组为类别字段中的其他人。我希望它更清楚,也没有道理。谢谢你的时间。 Br – DJ8 2014-12-04 21:20:28