2012-01-19 36 views
0

的日期范围条款现有的不存在的成员,我有一个MDX查询从2005年SSAS多维数据集检索数据:代与MDX查询

SELECT NON EMPTY { [Measures].[Record Count] } ON COLUMNS 
FROM [Cube] 
WHERE { [Dimension].[Date].[Day].&[2012]&[1]&[1]:[Dimension].[Date].[Day].&[2012]&[1]&[10] } 

这通常效果很好。但是,如果2012-01-01上没有记录,则表示将替换NULL值,并且查询会忽略该日期范围启动参数。

如何检查该维度成员是否存在并在该范围子句中使用其他日期(2012-01-02)(如果该范围子句不存在)?

回答

1

看起来是这样做的:

SELECT NON EMPTY { [Measures].[Record Count] } ON COLUMNS 
FROM [Cube] 
WHERE { IIF([Dimension].[Date].[Day].&[2012]&[1]&[1] IS NULL, [Dimension].[Date].[Day].&[2012]&[1]&[2], [Dimension].[Date].[Day].&[2012]&[1]&[1]):[Dimension].[Date].[Day].&[2012]&[1]&[10] } 
0

子多维数据集查询是否有相同的问题?

SELECT NON EMPTY { [Measures].[Record Count] } ON COLUMNS 
FROM 
(SELECT [Dimension].[Date].[Day].&[2012]&[1]&[1]:[Dimension].[Date].[Day].&[2012]&[1]&[10] 
ON COLUMNS FROM [Cube]) 
+0

是的,它看起来就像是运行到同样的问题。单独执行该子多维数据集查询也会突出显示相同的问题 - 因为2012-01-01没有记录,查询将替换为该成员的NULL,导致它忽略日期范围start子句并返回所有存在的记录直到2012-01-10。 – JML