SSRS显示彼此重叠的列

时间:2016-02-11 19:24:27

标签: ssrs-2008-r2

如果我有一个返回的报告,请说8列为:

Col1 Col1 Col3 Col4 Col5 Col6 Col7 Col8

有没有办法让它显示如下:

Col1 Col2 Col3 Col4
Col5 Col6 Col7 Col8

列的总数将是可变的,但我只想在每行上显示4。每列只应返回一个值。

1 个答案:

答案 0 :(得分:1)

如果每个日期只显示一个字段,则可以更改SQL查询以将每个字段映射到所需的列和行。

计算完行数和列值后,您可以使用这些值将数据分组到正确的位置(在我的示例中为total_sales)。

DECLARE @data TABLE
(
    sale_date DATE,
    total_sales INT
)

INSERT INTO @data (sale_date, total_sales)
SELECT '2/1/2016', 100
UNION SELECT '2/2/2016', 450
UNION SELECT '2/3/2016', 175
UNION SELECT '2/4/2016', 900
UNION SELECT '2/5/2016', 150
UNION SELECT '2/6/2016', 425
UNION SELECT '2/7/2016', 300
UNION SELECT '2/8/2016', 550

DECLARE @date_from DATE = '2/1/2016'
    , @date_to DATE = '2/10/2016'

SELECT d.total_sales AS 'total_sales'
    , CONVERT(DATE, d.sale_date) AS 'sale_date'
    , (DATEDIFF(DAY, @date_from, d.sale_date) - DATEDIFF(DAY,@date_from, d.sale_date) % 4) / 4 AS 'Row'
    , DATEDIFF(DAY, @date_from, d.sale_date) % 4 AS 'column'
FROM @data d
WHERE d.sale_date >= @date_from
    AND d.sale_date <= @date_to

有时创建新矩阵以显示此数据比尝试手动更改旧矩阵中的分组更容易。

  • 添加新矩阵
  • 将新矩阵指向您的数据集
  • 映射&#39; total_sales&#39;到标有“数据”字段的字段中在右下方
  • 映射&#39;行&#39;在标有“行”字段的字段中在左下角
  • 映射&#39;列&#39;到标记为&#39;列&#39;的字段在右上角