Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 报表生成器中包含聚合剩余项的矩阵顶级列表_Sorting_Matrix_Reporting Services_Filter_Aggregate - Fatal编程技术网

Sorting 报表生成器中包含聚合剩余项的矩阵顶级列表

Sorting 报表生成器中包含聚合剩余项的矩阵顶级列表,sorting,matrix,reporting-services,filter,aggregate,Sorting,Matrix,Reporting Services,Filter,Aggregate,我很难把这项简单的任务理出来。我会给你一个我想做的例子。我想在报表生成器矩阵中创建一个前5名列表,然后我想将“剩余”值聚合起来,并将它们命名为其他值 到目前为止,我已经在一个组中列出了前5名,添加了一个新行,并列出了其他值的底部列表。我无法将其他值聚合到一行。这就是我想得到一些帮助的地方 列表可以如下所示: 国家价值 美国10 加拿大9 墨西哥8 西班牙7 法国6 德国5 意大利4 希腊3 挪威2 总数54 我想提出如下清单: 国家价值 美国10 加拿大9 墨西哥8 西班牙7 法国6 其他14*

我很难把这项简单的任务理出来。我会给你一个我想做的例子。我想在报表生成器矩阵中创建一个前5名列表,然后我想将“剩余”值聚合起来,并将它们命名为其他值

到目前为止,我已经在一个组中列出了前5名,添加了一个新行,并列出了其他值的底部列表。我无法将其他值聚合到一行。这就是我想得到一些帮助的地方

列表可以如下所示:

国家价值

美国10

加拿大9

墨西哥8

西班牙7

法国6

德国5

意大利4

希腊3

挪威2

总数54

我想提出如下清单:

国家价值

美国10

加拿大9

墨西哥8

西班牙7

法国6

其他14*

Total_uuuuu54

检查此Sql语句: 定制您的查询

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

你好,Manoj,谢谢你的回答。这是一个很好的解决方案,但不幸的是,这并不是我想要的。我意识到我忘了写我使用的是表格立方体。在我的Tablix中,我使用了几个度量值,并基于其中一个,我希望创建一个顶部列表,然后将剩余值与类别字段中的其他值分组。我希望它更清晰,也更合理。谢谢你抽出时间。溴