Sql SSRS条件的不同计数,每组一次

Sql SSRS条件的不同计数,每组一次,sql,reporting-services,Sql,Reporting Services,假设我有类似的数据: |NAME |AMOUNT|RANDOM_FLAG| |------|------|-----------| |MARK | 100| X | |MARK | 400| | |MARK | 200| X | |AMY | 100| X | |AMY | 400| | |AMY | 300| | |ABE | 3

假设我有类似的数据:

|NAME  |AMOUNT|RANDOM_FLAG|
|------|------|-----------|
|MARK  |   100|       X   |
|MARK  |   400|           | 
|MARK  |   200|       X   | 
|AMY   |   100|       X   |
|AMY   |   400|           | 
|AMY   |   300|           |
|ABE   |   300|           |
|ABE   |   900|           |
|ABE   |   700|           |

如何使用至少一个随机_标志集获得名称的不同计数。在我的总计行中,我希望看到计数为2,因为Mark和Amy都设置了标志,无论选择了多少次。我尝试了SSRS中我能想到的每一件事。我猜有一种方法可以达到这个目的,但我想不出来。我确实有一个组的名称。

您可以在SSRS中使用有条件的
COUNTDISTINCT

 select count(name) from table_name where name in (select distinct name from table_name where random_flag="x");
=COUNTDISTINCT(
  IIF( not ISNOTHING(Fields!Random_Flag.Value) and Fields!Random_Flag <> "",Fields!Name.Value,Nothing),
  "DataSetName"
)
=COUNTDISTINCT(
IIF(不为空(字段!Random_Flag.Value)和字段!Random_Flag“”,字段!Name.Value,Nothing),
“数据集名称”
)

用数据集的名称替换
DataSetName

您可以在SSRS中使用有条件的
COUNTDISTINCT

=COUNTDISTINCT(
  IIF( not ISNOTHING(Fields!Random_Flag.Value) and Fields!Random_Flag <> "",Fields!Name.Value,Nothing),
  "DataSetName"
)
=COUNTDISTINCT(
IIF(不为空(字段!Random_Flag.Value)和字段!Random_Flag“”,字段!Name.Value,Nothing),
“数据集名称”
)

用数据集的名称替换
DataSetName

谢谢,但我希望有一个SSRS解决方案。很明显,我的示例很简单,但真正的查询要比这个复杂得多,不能很好地与子查询配合使用。谢谢,但我希望有一个SSRS解决方案。显然,我的示例很简单,但真正的查询要比这个复杂得多,并且不能很好地与子查询配合使用。这很简单,也很有道理,但出于某种原因,我暗指我……这很有效。这很简单,也很有道理,但出于某种原因,他暗指我。。。