我有这个:
SELECT
{[Case_Type].[Case_Type].AllMembers} ON COLUMNS,
{[Geography].[country].AllMembers} ON ROWS
FROM [Cases_Cube]
where ([Create_Date_Key].[Create_Date_Key].&[20150201] : [Create_Date_Key].[Create_Date_Key].&[20150208])
并且工作正常 - 如果分别有20150201和20150208。
但是,我需要能够在任何日期范围内发送。当我使用不存在的日期时...查询失败。
我做了很多研究,似乎无法得到一个好的,简单的答案。
答案 0 :(得分:0)
这是麻烦的一套吗?
[Create_Date_Key].[Create_Date_Key].&[20150201] : [Create_Date_Key].[Create_Date_Key].&[20150208]
如果多维数据集中不存在20150201
,则处理器会将上述内容解释为:
null : [Create_Date_Key].[Create_Date_Key].&[20150208]
返回20150208之前的所有日期
如果多维数据集中不存在20150208
,则处理器会将上述内容解释为:
[Create_Date_Key].[Create_Date_Key].&[20150201] : null
返回20150201之后的所有日期。
希望这可以解释您遇到的行为。
您可以将用户的选择限制在多维数据集中的日期吗?