在Reporting Services矩阵中显示重叠范围的聚合

时间:2009-10-12 13:09:05

标签: reporting-services reportingservices-2005

我在显示矩阵行中日期范围的值时遇到问题。我想有一个矩阵显示以下数据:

            Trial Existing  Total
Yesterday      3    1       4
This Week      5    3       8
Last Week     18    5      23
Month to Date 26    9      35
Last Month    32   20      52

我认为解决方案是创建一个带有取消范围(“昨天”,“本周”等)文本值的计算字段。问题是这些日期范围重叠,字段只能包含一个文本值。

有没有办法在Reporting Services中创建这样的矩阵表?

1 个答案:

答案 0 :(得分:0)

如果我建议,为什么不在查询中使用UNION创建具有相同数据的SQL结果集?

e.g。

SELECT 'Yesterday' AS When, 
SUM(CASE WHEN Status = 'Trial' Then 1 Else 0 End) AS Trial,
SUM(CASE WHEN Status = 'Other' Then 1 Else 0 End) AS Other
FROM myTable
WHERE TheDate >= givenDate AND TheDate < (givenDate + 1)
GROUP BY When
UNION
SELECT 'This Week' AS When, 
SUM(CASE WHEN Status = 'Trial' Then 1 Else 0 End) AS Trial,
SUM(CASE WHEN Status = 'Other' Then 1 Else 0 End) AS Other
FROM myTable
WHERE TheDate >= (givenDate - 7) AND TheDate < (givenDate + 1)
GROUP BY When

注意:我编写了这个查询,为您提供了如何在SQL中完成此操作的示例。因此,不要依赖Reporting Services来完成工作。

你将不得不做一些杂耍,以便在tsql中使用与DATE相关的函数来获取“本周”的日期。

“总计”字段可以是报告中的计算字段。