2011-11-18 87 views
1

的會是怎樣的MDX查詢等同於:MDX相當於SQL查詢

select * from tableName where somecount > num1 and somecount < num2? 

somecount是在我的情況的尺寸(而不是尺寸)。

據我所知,MDX查詢中的WHERE子句不支持小於或大於操作。 somecount在我的情況是Timestamp。因爲我想彙總用戶傳遞參數的數據(可以彙總昨天,最近7天,最近15天,上個月等)。因此,預先計算時間戳並將其存儲爲年 - 月 - 日 - 時間將無濟於事。

+1

爲了實現 「somecount> NUM1」 你需要在MDX篩選讀了()函數。 –

回答

1

由於語法相似,所以混合使用SQL和MDX存在一個常見錯誤。但MDX不像SQL。

我建議通過這個Gentle MDX Tutorial得到更好的理解。

Select * 

在MDX中沒有*的等價物,您必須通過放置尺寸來指定您的座標軸。例如,您可以使用[Measures] .members選擇度量列表。

.. where somecount > num1 and somecount < num2? 

的翻譯,這是使用MDX subselects,奇怪,但MDX where clause是不同的東西。它更像是:

Select [Measures].members on 0 
from (
    select {All the members that match your filter} from [MyCube] 
) 

有一對夫婦的方式讓成員列表,檢查MDX functions available列表以獲得所有的想法是可行的。

祝您在MDX中邁出第一步。

0
SELECT MEMBERS ON ROWS FROM (SELECT Filter(filter) ON COLUMNS FROM [FACT_TABLE]) 

過濾器應該是這樣的

Filter([TIME].[YEAR].[YEAR].AllMembers, (
[TIME].[YEAR].CurrentMember.member_caption>="2009" AND 
[TIME].YEAR].CurrentMember.member_caption<="2012")) 
0
SELECT Measures.members ON ROWS, 
     Dimension.members ON Columns 
    FROM Cube 
WHERE somecount.value > num1 
    AND somecount.value < num2