MDX - Always return at least one row even if no data is available

一曲冷凌霜 提交于 2019-12-13 05:04:38

问题


I am using the following MDX to pull a parameter:

WITH
    MEMBER [Measures].[Label] AS [Dim].[Hier].CURRENTMEMBER.NAME
    MEMBER [Measures].[Value] AS [Dim].[Hier].CURRENTMEMBER.UNIQUENAME

SELECT
{
    [Measures].[Label]
    , [Measures].[Value]
}
ON 0,
    NONEMPTY([Dim].[Hier].children, [Measures].[Measure])
ON 1
FROM [Cube]
WHERE 
(
-- Criteria
)

Sometimes, when selecting certain filtering criteria the query results in empty set. Instead, I would like it to display "N/A" in both value and label. Is it doable in MDX or should I use SSRS Calculated member to count rows in resulting dataset and substitute?


回答1:


Something like :

WITH
 SET [MySet] AS  NONEMPTY([Dim].[Hier].children, [Measures].[Measure])
 MEMBER [Measures].[Label] AS [Dim].[Hier].CURRENTMEMBER.NAME
 MEMBER [Measures].[Value] AS [Dim].[Hier].CURRENTMEMBER.UNIQUENAME
 MEMBER [Dim].[Hier].[All(likely)].[N/A] AS 'N/A'
SELECT
 {[Measures].[Label] , [Measures].[Value] }
ON 0,
 IIF( count( [MySet] ) = 0, {[Dim].[Hier].[All(likely)].[N/A]}, [MySet] )
ON 1
FROM
 [Cube]
WHERE 
 (-- Criteria)


来源:https://stackoverflow.com/questions/24903673/mdx-always-return-at-least-one-row-even-if-no-data-is-available

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!