reporting-services - 如何使用 SSRS 报表表达式统计数据集的记录

标签 reporting-services count ssrs-2008

我需要获取 dataset 的记录数,其 AsssistTypeId = 1 .
我的 Dateset 是这样的,

+---------+--------+---------------+
| LobbyID | ProdID | AsssistTypeId |
+---------+--------+---------------+
| 285316  | 160    | 1             |
+---------+--------+---------------+
| 285317  | 161    | 2             |
+---------+--------+---------------+
| 285318  | 159    | 1             |
+---------+--------+---------------+
| 285319  | 160    | 1             |
+---------+--------+---------------+
| 285331  | 160    | 2             |
+---------+--------+---------------+
| 285332  | 160    | 1             |
+---------+--------+---------------+
| 285333  | 161    | 2             |
+---------+--------+---------------+
| 285334  | 160    | 1             |
+---------+--------+---------------+
| 285335  | 160    | 1             |
+---------+--------+---------------+
| 285335  | 161    | 1             |
+---------+--------+---------------+
| 285335  | 163    | 1             |
+---------+--------+---------------+
目前我得到了 lobbyId 的计数不同的值如下,它按预期工作。根据上述 dataset , 以下表达式的输出返回 9
=iif(inscope("matrix1_RowGroup3"), 
IIF(Count(Fields!LobbyID.Value) = 0, "", Count(Fields!LobbyID.Value)),
iif(inscope("matrix1_AssistedBy"),IIF(CountDistinct(Fields!LobbyID.Value) = 0, "", CountDistinct(Fields!LobbyID.Value)),
CountDistinct(Fields!LobbyID.Value)))
现在我需要计算 LobbyId它的AsssistTypeId = 1 .对于上述数据集,我期待 AsssistTypeId = 1算作 6 ,我该怎么写表达呢?
更新时间:12/8/2020
这是我尝试过的,但它没有返回任何结果。
=
iif
(

    inscope("matrix1_RowGroup3"),   
        IIF
        (
            Fields!AsssistTypeId.Value = 1,
            IIF
            (
                Count(Fields!LobbyID.Value) = 0, "", Count(Fields!LobbyID.Value)            
            ),
            Nothing         
        ),
        IIF
        (
            inscope("matrix1_AssistedBy"),
            
            IIF
            (
                Fields!AsssistTypeId.Value = 1,
                IIF(CountDistinct(Fields!LobbyID.Value) = 0, "", CountDistinct(Fields!LobbyID.Value)),
                Nothing         
            ),
            IIF
            (
                Fields!AsssistTypeId.Value = 1,
                CountDistinct(Fields!LobbyID.Value),
                Nothing         
            )
        )
)
我也试过这个,
=iif(inscope("matrix1_RowGroup3"), 
IIF(Count(Fields!LobbyID.Value) = 0, "", Count(Fields!LobbyID.Value)),
iif(inscope("matrix1_AssistedBy"),IIF(SUM(IIF(Fields!AsssistTypeId.Value = 1,1,0)) = 0, "", SUM(IIF(Fields!AsssistTypeId.Value = 1,1,0))),
SUM(IIF(Fields!AsssistTypeId.Value = 1,1,0))))
这个作品 ,但是当有重复项时 LobbyId , 也算 Duplicates, 根据上面的数据集,输出显示为, 8 , 但它应该是 6

最佳答案

这是未经测试的,但您可以尝试...

=CountDistinct
    (
      IIF (
           Fields!AssistTypeId.Value = 1
           , Fields!LobbyID.Value
           , Nothing
          ) 
    , "matrix1_RowGroup3"
    )
由于 CountDistinct 会忽略空(无)值,因此我们用 Nothing 替换不是您想要计数的值的任何内容。然后从剩余的值中对 LobbyID 进行不同的计数。
您可能需要更改或删除 "matrix1_RowGroup3"范围,我只是从你现有的表达中猜测它可能是什么。我还假设 AsssistTypeID 是一个错字并删除了一个“s”。

关于reporting-services - 如何使用 SSRS 报表表达式统计数据集的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63360438/

相关文章:

python - 如何计算 Cassandra 中特定列族的行键数(阅读详情)

reporting-services - SSRS Tablix中的垂直合并

reporting-services - 您可以将网络驱动器映射到 SSRS 报告目录吗?

reporting-services - SSRS 自定义程序集无法在 Visual Studio 2017 下加载

sql-server-2005 - 禁用或覆盖 Reporting Services 中的 Excel 和 pdf 导出功能

sql - 如何在 SQL 中获取唯一值?

Mysql统计多个表中按天分组的记录

sql - 需要在SSRS中显示记录Group By

visual-studio - SSRS - 后续页面内容区域中页眉和 tablix 之间的空间/边距

reporting-services - SSRS 日期参数默认为最近 30 天的时间