2016-02-11 70 views
0

頂部SSRS顯示列如果我有一個返回值的報告可以說8列:上的相互

Col1 Col1 Col3 Col4 Col5 Col6 Col7 Col8 

有沒有辦法通過它來顯示這樣的:

Col1 Col2 Col3 Col4 
Col5 Col6 Col7 Col8 

總列數將是可變的,但我只想在每一行顯示4。每列應只返回一個值。

+0

你說的「列的總數將變量」是指地圖的「列」到外地標有「列」?什麼會導致列數有所不同?當我在SSRS中進行報告時,通常列數是固定的,行數也是變化的。 –

+0

它基本上是一個列組。例如,如果我創建開始日期和結束日期作爲參數,並且想要從每天返回活動,如果我在1/1/16到1/10/16之間放置,則會有10列,每個日期一列。如果我把1/1到1/20放在20列。 – user1873604

回答

1

如果每個日期只顯示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」來標記「數據」在右下角
  • 野外地圖的「行」到在左下角
  • 場打上「行」在右上角
+0

完美!謝謝! – user1873604