ssrs聚合在一起

时间:2015-12-03 19:12:39

标签: reporting-services ssrs-2008 ssrs-2008-r2 ssrs-tablix

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



Project      Goal     Subgoal
A             g1         1.1
A             g1         1.2
A             g2         2.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




我需要的是一系列不同的项目(第1列),但是基于他们所连接的目标数量(第2列)。 此示例的预期结果将是另一个表:



Number of Goals          Count of Projects
1                                 2              (Projects B and D have 1 goal)
2                                 2              (Projects A and C have 2 goals)
3                                 0              (none of the projects have 3 goals)




我尝试按CountDistinct(Fields!Goal.Value)分组项目,但SSRS不允许这样做。我还尝试计算有超过1个目标的项目:

= CountDistinct(IIF(CountDistinct(Fields!Goal.Value) > 0, Fields!Project.Value,Nothing))

是否可以添加另一个数据集并为查询现有数据集的数据集开发查询?不确定是否可以这样做。

1 个答案:

答案 0 :(得分:2)

这是在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表格更改为您的表格名称。

它会返回一个这样的表:

enter image description here

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

转到此SQL-fiddle自行试用