Reporting services SSRS图表:如果X类别已经占总数的99%,则过滤Top10或TopX?

Reporting services SSRS图表:如果X类别已经占总数的99%,则过滤Top10或TopX?,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,我在条形图中显示了sum(x),并将其设置为仅显示前10个类别,即x的总和最高的10个类别 到目前为止还不错。然而,有时,两个或三个类别占总数的99%。在这些情况下,我想隐藏其他7个类别,每个类别都有.0x%,因为这在图表中没有价值 我需要根据类别所代表的总百分比,将前十名改为前几名 我想要的基本上是: 让我看看占总数1%或更多的顶级类别,但不超过10个 我怎样才能做到呢 提前感谢您的回答 我假设您正在询问如何在不修改sql的情况下执行此操作。如果是这种情况,那么只需选择汇总总和(x)的组。然后

我在条形图中显示了sum(x),并将其设置为仅显示前10个类别,即x的总和最高的10个类别

到目前为止还不错。然而,有时,两个或三个类别占总数的99%。在这些情况下,我想隐藏其他7个类别,每个类别都有.0x%,因为这在图表中没有价值

我需要根据类别所代表的总百分比,将前十名改为前几名

我想要的基本上是: 让我看看占总数1%或更多的顶级类别,但不超过10个

我怎样才能做到呢


提前感谢您的回答

我假设您正在询问如何在不修改sql的情况下执行此操作。如果是这种情况,那么只需选择汇总总和(x)的组。然后左键单击并选择“组属性…”弹出菜单项。从对话框左侧的列表视图中选择“筛选”列表视图项。在过滤器屏幕中,输入一个过滤器,指定X必须大于等于1

如果您希望在sql中执行此操作,那么我将设想一个类似于以下内容的查询:

    SELECT TOP(10)
       SumOfX
    FROM
    (
        SELECT 
            SumOfX=SUM(SomeTallyField)
        FROM
            SomeTable
        GROUP BY
            SomeGroupField
        HAVING 
            SUM(SomeTallyField) >= 1
    )AS X
    ORDER BY
        SomeTallyField DESC

我找到了答案。对总和(x)>=1进行过滤不起作用。一个简单的例子说明了原因:有三个和(x)在百万之间的条和7个和(x)在1到10之间的条是我想要隐藏这7个条的情况之一。它们都满足sum(x)>1,并且不会被这样一个简单的过滤器隐藏。需要使用总需求的百分比

事实证明,这毕竟很容易。我需要两个过滤器。我已经准备好的第一个:

Top 10 of sum(x) 
这将总条数限制为10条,即使超过10条符合我的其他标准。第二个过滤器将总和与数据集总数进行比较。这就是我没有早点去工作的原因,因为我觉得它太复杂了。但这很简单:

=sum(x)/sum(x,"DataSet1")     >= 0.01

这要求条形图至少占总条形图的1%,才能显示在图表中。在我上面的例子中,这7条不会出现在图表上,因为如果前3条已经有数百万条了,那么它们所代表的比例还不到1%。

是否要将逻辑放入存储过程、内联查询、,数据集过滤器?它必须是图表上的过滤器,因为数据集在报表中的其他位置使用,不应在那里进行过滤。谢谢您的回答!不幸的是,sum(x)>1不起作用,不管我在哪里过滤它。它必须以百分比为基础,即使总和(x)=1000000,也不应显示其他五个类别的总和是否为数十亿。。。