2013-10-09 56 views
1

首先,我的立方體的時間維度由我從兩個分離的維度創建。如何在日期和時間維度上過濾而我想探索它們?

時間維度:小時,半小時,十分鐘和分鐘字段。

與日期維度:日,月,年字段

我的問題是,當我想要探索和篩選出幾個整整兩天,而不是整天,結果是一樣,如果我只是在探索整整兩天。

讓我告訴你我用的是MDX:

select non empty ([Client].[Client].[Client],[Product].[Product].[Product]) on rows, 
    {[Measures].[Example]} on columns 
from [Cube] 
where ({([Date].[Id].&[20131002]) *([Time].[Time Field].&[0] : [Time].[Time Field].&[2059]) } +{([Date].[Id].&[20130930] : [Date].[Id].&[20131001]) *([Time].[Time Field].&[0] : [Time].[Time Field].&[2359]) } ) 

這MDX的作品,因爲地圖無法日期或時間維度。

這一個不工作:

select non empty ([Date].[Date Field].[Date Field]) on rows, 
    {[Measures].[Example]} on columns 
from [Cube] 
where ({([Date].[Id].&[20131002]) *([Time].[Time Field].&[0] : [Time].[Time Field].&[2059]) } + {([Date].[Id].&[20130930] : [Date].[Id].&[20131001]) *([Time].[Time Field].&[0] : [Time].[Time Field].&[2359]) } ) 

我注意到,如果我把這樣的MDX:

select non empty ([Date].[Date Field].[Date Field]) on rows, 
    {[Measures].[Example]} on columns 
from [Cube] 
where ({([Date].[Id].&[20131002]) *([Time].[Time Field].&[0] : [Time].[Time Field].&[2059]) } } 

select non empty ([Date].[Date Field].[Date Field]) on rows, 
    {[Measures].[Example]} on columns 
from [Cube] 
where ({{([Date].[Id].&[20130930] : [Date].[Id].&[20131001]) *([Time].[Time Field].&[0] : [Time].[Time Field].&[2359]) } 

它的作品!但我想用一個mdx來做。

如果有人可以幫助我,我將不勝感激!

問候。

回答

1

您可以嘗試使用子查詢:

select non empty (EXISTING [Date].[Date Field].[Date Field]) on rows, 
    {[Measures].[Example]} on columns 
from (select 
    ({([Date].[Id].&[20131002]) *([Time].[Time Field].&[0] : [Time].[Time Field].&[2059]) } 
    + {([Date].[Id].&[20130930] : [Date].[Id].&[20131001]) *([Time].[Time Field].&[0] : [Time].[Time Field].&[2359]) } ) 
     on columns 
     from [Cube] 
    ) 

順便說一句,你的MDX是非法的(但分析服務是寬容):根據MDX規範,列必須在SELECT子句中的行之前指定。

+0

非常感謝你!所以mdx完美地工作,並在我的語法中糾正 – antoniopiri

相關問題