Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services 基于聚合的SSR分组_Reporting Services_Ssrs 2008_Ssrs 2008 R2_Ssrs Tablix - Fatal编程技术网

Reporting services 基于聚合的SSR分组

Reporting services 基于聚合的SSR分组,reporting-services,ssrs-2008,ssrs-2008-r2,ssrs-tablix,Reporting Services,Ssrs 2008,Ssrs 2008 R2,Ssrs Tablix,我有一份现有的SSRS报告,显示了项目和目标/子目标之间的一些联系。报告数据如下所示: 项目目标子目标 G11.1 G11.2 G22.1 B g1 1.1 B g1 1.2 C g2 2.2 C g3 3.1 C g3 3.2 D g1 1.1这是T-SQL中获取所需数据集的一种简单方法,我相信有一种更有效的方法,但这是我第一次想到的,希望这能对您有所帮助 对问题中的第一个表使用此查询 WITH cte_countGoals AS (SELECT Project, COUNT(DIS

我有一份现有的SSRS报告,显示了项目和目标/子目标之间的一些联系。报告数据如下所示:

项目目标子目标
G11.1
G11.2
G22.1
B g1 1.1
B g1 1.2
C g2 2.2
C g3 3.1
C g3 3.2

D g1 1.1
这是T-SQL中获取所需数据集的一种简单方法,我相信有一种更有效的方法,但这是我第一次想到的,希望这能对您有所帮助

对问题中的第一个表使用此查询

WITH cte_countGoals
AS (SELECT
  Project,
  COUNT(DISTINCT Goal) TotalGoals
FROM Test --Your table name
GROUP BY Project)
SELECT DISTINCT
  a.TotalGoals,
  b.TotalProjects
FROM cte_countGoals a
INNER JOIN (SELECT
  TotalGoals,
  COUNT(TotalGoals) TotalProjects
FROM cte_countGoals
GROUP BY TotalGoals) b
  ON a.TotalGoals = b.TotalGoals
您必须将
Test
表更改为表名

它将返回如下表:

我添加了另一个具有三个不同目标的项目


到这里自己尝试一下

为什么不在查询级别处理它呢?这比尝试计算SSR中所需的计数要容易得多。Alejandro,谢谢你的想法。我根据这个查询添加了一个新的数据集:“选择项目,按项目将(不同的目标)计数为goalCount Group;”。然后,我在我的报告中添加了一个矩阵,对goalCount进行分组,并聚合“Count(Fields!Project.Value)”。结果正是我所需要的。再次谢谢你。@Aparat,很好!我很高兴我的回答对你有帮助。