2015-08-17 30 views
1

我有這樣的:簡單MDX日期範圍內沒有工作

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

查詢將從哪裏進行?是否有任何報告界面可以通過這兩個地方,比如說「開始日期」和「結束日期」? – SouravA

回答

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.

希望這說明您所遇到的行爲將返回所有日期。

您可以限制用戶選擇存在於多維數據集中的日期嗎?

+0

是的,這解釋了行爲。但是,不,我不能限制選擇,查詢參數來自另一個系統。 – mmaceachran

+0

好的 - 不知何故,您的查詢需要移至最近的現有日期 - 我不確定解決此問題的標準方法。 @GregGalloway - 用戶應該如何處理這個常見問題? – whytheq

+0

@mmaceachran ok - 一個想法是使用一個自定義度量來獲取輸入日期的關鍵字,然後使用'Filter'函數返回目標日期集合,這些日期的鍵值大於或小於兩個限制日期。 – whytheq