在SSRS报告构建器中获取行数

时间:2012-02-03 10:32:46

标签: reporting-services ssrs-2008

我使用Report Builder 3.0(使用SQL Server 2008 R2)构建了一个报表。现在我希望现在有多少记录从数据库中提取到报告中?

这可以通过SSRS中的count函数或在SQL Query中使用RANK / ROW_NUMBER函数并将其作为字段分配给报表(RANK / ROW_NUMBER将为每行提供排名并导航到报表中的最后一页将有助于我得到总排数。)

我尝试了计数功能,但这取决于报告中的某些字段。例如= Count(Field!FieldName.value, "DataSetName")此方法存在问题:“FieldName”在报告中不是唯一的,因此计数会重复

第二个选项:添加Rank / Row_Number,但它们也使用相同类型的fieldName,因此这里的计数也会重复。

主要问题:我的查询中没有唯一的字段(因此我尝试了ROW_NUMBER())

如何在SSRS 2008中找到总行数或排名(每行)?

5 个答案:

答案 0 :(得分:44)

使用CountRows function。例如

=CountRows("MyDataset")

将为您提供 MyDataSet 中的行数。

答案 1 :(得分:0)

在Tablix控件的属性中,有一个名为 NoRowsMessage 的属性名称,当不返回任何行时,将您的消息放在此处。

答案 2 :(得分:0)

我找到了解决方法。首先创建一个数据列,其值始终设置为1。这将为每一行数据提供一个值。

查询列

, 1 AS Unit

如下所示,在报告中使用“ RunningValue”功能。

=RunningValue(Fields!Unit.Value,Sum,"DataSet")

如果您要查找的话,这也可以作为“运行总和”。

答案 3 :(得分:0)

正如上面提到的其他人一样,直到我如此包装CountRows("DatasetName")之前,我无法让CSTR(CountRows("DatasetName"))在标头中工作。

答案 4 :(得分:0)

您不能在没有分组的情况下将聚合值放入详细信息中。 解决方法如下: =Count(Fields!rn.Value)

我在列/标题行中使用它。

相关问题