SSRS 在彼此之上显示列

SSRS Display columns on top of each other

如果我有一份报告 returns 假设 8 列为:

Col1 Col1 Col3 Col4 Col5 Col6 Col7 Col8

有没有办法让它像这样显示:

Col1 Col2 Col3 Col4
Col5 Col6 Col7 Col8

总列数是可变的,但我只想在每行上显示 4 个。每列应该只有 return 个值。

如果每个日期只有 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

有时创建一个新矩阵来显示这些数据比尝试手动更改旧矩阵中的分组更容易。

  • 添加新矩阵
  • 将新矩阵指向您的数据集
  • 将 'total_sales' 映射到右下方标记为 'Data' 的字段
  • 将 'row' 映射到左下方标记为 'Rows' 的字段
  • 将 'column' 映射到右上角标记为 'Columns' 的字段