2011-09-13 66 views
0

我在構建報告服務中的MDX查詢時遇到問題。我已經通過互聯網搜索了很多關於它的信息,儘管我已經清楚MDX查詢的例子以及如何構建它,但我總是遇到語法錯誤。所以這是事情:在報告服務中使用過濾器構建分析服務查詢(MDX)

我想要做的事很簡單。我想過濾數據,只包含在相應的列和參數中具有相同值的行。通過查詢生成器生成的原始查詢爲:

SELECT NON EMPTY { [Measures].[Value] } ON COLUMNS, 
NON EMPTY { 
([Net Object Hierarchy].[Central Telecom Center].[Central Telecom Center].ALLMEMBERS * 
[Net Object Hierarchy].[Province].[Province].ALLMEMBERS * 
[Net Object Hierarchy].[County].[County].ALLMEMBERS * 
[Net Object Hierarchy].[District].[District].ALLMEMBERS * 
[Net Object Hierarchy].[Rural].[Rural].ALLMEMBERS * 
[Net Object Hierarchy].[Village].[Village].ALLMEMBERS * 
[Net Object Hierarchy].[Telecom Center].[Telecom Center].ALLMEMBERS * 
[Net Object Hierarchy].[Switch].[Switch].ALLMEMBERS * 
[Net Object Hierarchy].[Prefix].[Prefix].ALLMEMBERS * 
[Measure].[Measure ID].[Measure ID].ALLMEMBERS * 
DESCENDANTS([Date To].[Parent Date Key].[Level 02].ALLMEMBERS)) } ON ROWS 
FROM [Irtel Planning Statistics] 

過濾數據的參數包括: 「paramCentralTelecomCenter」, 「paramProvince」, 「paramCounty」, 「paramDistrict」,......, 「paramPrefix」。例如,如果參數paramProvince的值設置爲「CA」,那麼我只需要檢索那些值爲[Net Object Hierarchy]。[省] [省] =「CA」的記錄。這應該很簡單,但我完全失去了。

任何人都可以幫助我嗎?提前致謝。

回答

0

您需要在SELECT中使用WHERE子句。這在FROM之後結束。

例如,下面將限制查詢到省設置爲「CA」這些元素:

WHERE [Net Object Hierarchy].[Province].[Province].[CA] 
+0

感謝您的答覆薩姆。我必須補充一點,我正在使用SSRS和SSAS。現在的問題是,如果我在SSRS中有Report參數,並且想要讓這些省份等於用戶輸入的輸入參數,我該如何更改查詢:WHERE [Net Object Hierarchy]。[省]。[省] 。[CA]。我的意思是類似於:WHERE [Net Object Hierarchy]。[省]。[省]。@ paramProvince – Paiman

+0

是的,它應該是這樣的。如果你的參數真的是關鍵,那麼你可以在[Net Object Hierarchy]。[省]。[省]。[@ paramProvince]或者WHERE [Net Object Hierarchy]。[省]。[省]和[@paramProvince]比價值。 –

+0

謝謝親愛的薩姆,我會嘗試;) – Paiman