如何创建一个选择多个最高值的参数
How can I create a parameter which choosing a number of top of values
我在 SSRS 2008 中创建了一个报告。该报告包含以下字段:请求数、发起人的组织
我如何创建一个参数,从字段请求数中选择多个最高值
例子,参数5的设置值:
Number of requests, Organization of the initiator
10 initiator1
9 initiator2
8 initiator3
7 initiator4
6 initiator5
有几种方法可以解决这个问题。您可以像在这个类似问题 How to get total of top 10 sales in SSRS 2012
中那样在报告中完成工作
或者您可以在数据集中执行此操作。假设您正在使用 SQL 服务器,您可以这样做。
-- declare @TopN int = 5 -- Comment this out in production this is only used for testing. This parameter will be passed in from SSRS
SELECT * FROM
(
select NumberOfRequests, Organization
, RANK() OVER(ORDER BY NumberOfRequests desc) as rnk
from MyTable
) q
WHERE q.rnk <= @TopN
我们在这里所做的就是选择数据,根据 NumberOfRequests 为每一行分配一个排名,最大的 = 1,下一个最大的 = 2 等等......
然后我们有一个外部查询,它只选择排名低于您想要的数字的任何内容。
我在 SSRS 2008 中创建了一个报告。该报告包含以下字段:请求数、发起人的组织
我如何创建一个参数,从字段请求数中选择多个最高值
例子,参数5的设置值:
Number of requests, Organization of the initiator
10 initiator1
9 initiator2
8 initiator3
7 initiator4
6 initiator5
有几种方法可以解决这个问题。您可以像在这个类似问题 How to get total of top 10 sales in SSRS 2012
中那样在报告中完成工作或者您可以在数据集中执行此操作。假设您正在使用 SQL 服务器,您可以这样做。
-- declare @TopN int = 5 -- Comment this out in production this is only used for testing. This parameter will be passed in from SSRS
SELECT * FROM
(
select NumberOfRequests, Organization
, RANK() OVER(ORDER BY NumberOfRequests desc) as rnk
from MyTable
) q
WHERE q.rnk <= @TopN
我们在这里所做的就是选择数据,根据 NumberOfRequests 为每一行分配一个排名,最大的 = 1,下一个最大的 = 2 等等......
然后我们有一个外部查询,它只选择排名低于您想要的数字的任何内容。