如何在SSRS中为同一字段编写包含多个过滤器的报表

时间:2010-10-27 17:23:40

标签: sql-server reporting-services

以下报告目前使用linq编写实体来获取数据并在代码中构建html表。我想用SSRS重写它,需要一些建议。

所有数据都在同一个表格中。还会有日期范围参数。

以下是报告所需的基本模板。

Categories    0-30     31-60      61-90       >90
Category1     0*         0          0          0
Category2     0          0          0          0
Category3     0          0          0          0
Category4     0          0          0          0
Category5     0          0          0          0

例如,要获取第一个值(*),select语句看起来就像

SELECT
  SUM(ItemCount) As Sum_ItemCount
FROM
  Table
WHERE
  TotalLength < 30
  AND Date >= @Date
  AND Date <= @Date2
  AND Category == 'Category1'

2 个答案:

答案 0 :(得分:1)

您可以使用Matrix对象(类似于Excel数据透视表)在SSRS中执行此操作 - 有关详细信息,请参阅此处:http://msdn.microsoft.com/en-us/library/ms157334%28SQL.100%29.aspx

编辑 - 建议的样本查询:

SELECT
  CASE WHEN TotalLength <= 30 THEN '0-30'
       WHEN TotalLength > 30 AND TotalLength <= 60 THEN '31-60'
       WHEN TotalLength > 60 AND TotalLength <= 90 THEN '61-90'
       ELSE '>90'
  END AS LengthBand,
  Category,
  SUM(ItemCount) As Sum_ItemCount
FROM
  Table
WHERE
  Date >= @Date
  AND Date <= @Date2

答案 1 :(得分:0)

此链接应该有所帮助:

http://msdn.microsoft.com/en-us/library/ms156280.aspx

我认为该文章中的“向项目或解决方案添加报告”中提供了相关的部分/子链接。