强制SSRS即使使用空数据也会显示所有列

时间:2016-04-18 18:23:44

标签: sql reporting-services

`我如何拥有12个月的静态行以及动态行,它必须看起来像一个表?我没有列预算,我创建了单独的帮助表,全年预算金额。所以我不知道如何将该表加入主查询?

Select SUM(amount) as Commercial Auto
FROM
JOIN...`
WHERE...
UNION ALL 
Select sum(anotherAmount) as Speciality Casualty
FROM
JOIN
WHERE

应该是这样的: enter image description here

1 个答案:

答案 0 :(得分:0)

简短回答是将您拥有的数据交叉加入日历。 - 这样你仍然可以保留没有任何数字数据的单元格,因为它们仍然会显示日历月。

观看您的聚合 - 确保您正在进行交叉加入!



WITH Money_CTE AS(
	SELECT
    	'1564651.01' AS MonataryData,
    	'2' AS MonthNumber
    FROM
    	DUAL
    UNION
    SELECT
    	'234235.23' AS MonataryData,
        '3' AS MonthNumber
    FROM
    	DUAL
    ),
Calendar_CTE AS(
	SELECT
    	'1' AS MonthNumber,
        'January' AS MonthName
    FROM
    	DUAL
    UNION
    SELECT
    	'2' AS MonthNumber,
        'February' AS MonthName
    FROM
    	DUAL
    UNION
    SELECT
    	'3' AS MonthNumber,
        'March' AS MonthName
    FROM
    	DUAL
)
SELECT 
	C.MonthNumber,
    C.MonthName,
	MAX(CASE WHEN M.MonthNumber = C.MonthNumber THEN M.MonataryData ELSE NULL END) AS Money
FROM 
	Money_CTE M
    CROSS JOIN Calendar_CTE C
GROUP BY
	C.MonthNumber,
    C.MonthName




对不起所有" Dual"废话 - 我最近被迫与甲骨文打交道。