【问题标题】:Using a count(*) query in SSRS Report在 SSRS 报告中使用 count(*) 查询
【发布时间】:2020-01-10 16:15:59
【问题描述】:

我想在 SSRS 报告数据集中使用查询作为

Select count(*) from tablename where datefieldname<=ParameterDate

但是,SSRS 仅允许对查询检索到的字段进行过滤。

谁能告诉我如何将参数过滤器应用于上述查询并在 SSRS 中使用?

谢谢

【问题讨论】:

  • 主键字段的 COUNT()?
  • 你能提供更多关于你需要什么的信息吗?报告中显示了哪些数据?显示的数据是否取决于参数日期?如果您愿意,您可以使用=CountRows("DataSet") 而无需单独查询。如果它不依赖于你应该没问题,只需为计数制作一个单独的数据集。
  • 好的,我有一份报告只需要显示计数而不是详细信息。我还可以使用以下查询“从员工中选择 JoiningDate,其中 JoiningDate
  • @Nilesh where 条件中还有哪些其他字段?
  • department='Some department' city like '%Some city%'

标签: reporting-services parameters count


【解决方案1】:

我想你想要这样的东西:

=SUM(IIF(Fields!SOME_DATE.Value <= Paramaters.ParameterDate.Value, 1, 0))

您可以使用 AND 和 OR 在 IIF 中添加其他逻辑。

IIF 将执行您的逻辑检查。如果满足您的条件,则返回 1,否则返回 0。

然后 SUM 将 IIF 中所有记录的所有值相加。

【讨论】:

  • 你来了。没有字段!SOME_DATE.Value 检索到的字段列表只是计数。
【解决方案2】:

在您的数据集查询中使用以下内容。

select count(JoiningDate) 
from tableName
where JoiningDate <= @parameterDate 
and department = @someDepartment 
and city like ('%' + @someCity + '%') 

以及您需要的任何其他条件。除非您总是需要相同的部门和城市,否则您将需要其他参数。可以在运行时更改这些参数以获得不同的结果。

【讨论】:

    【解决方案3】:

    只要在数据集查询中完成计数就可以任意计数,SSRS不关心你的查询是什么,只要它有效,它只关心返回什么。

    假设您有 2 个参数 @Date@Category,那么您的数据集查询可能只是

    SELECT COUNT(*) AS myCount FROM myTable WHERE myDateColumn <= @Date AND myCategoryColumn = @Category
    

    SSRS 只会在数据集中看到 myCount 字段,其中包含您所需的号码。

    仅此而已。

    【讨论】:

      【解决方案4】:

      我会在原始查询中选择您的日期字段,以便将其用于参数,然后对数据集中的计数列求和,而不对 datefieldname 进行分组以聚合您的过滤结果。

      select datefieldname, count(*) as date_total
      from tablename 
      where datefieldname<=ParameterDate
      group by datefieldname
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多