2014-02-05 117 views
1

我想多個成員從一個單一的層次結構相結合,儘管這會導致以下錯誤:MDX結合層次

Query (11, 3) The Jr-Kw-Mnd-Dag hierarchy is used more than once in the Crossjoin function. 

這是查詢的基本版本我使用:

SELECT 
    NON EMPTY { 
     [Measures].[Amount] 
    } ON COLUMNS 
    , NON EMPTY { 
     [Realisatiedatum].[Jr-Kw-Mnd-Dag].[Jaar] 
     * [Realisatiedatum].[Jr-Kw-Mnd-Dag].[Maand]) 
    } ON ROWS 

FROM 
    [Cube] 

Jaar等於一年的英文,Maand等於一個月的英語。這就是我要完成的:

... 
november 2013 
december 2013 
januari 2014 
februari 2014 
... 

最後但並非最不重要的,層次結構:

enter image description here

回答

1

我通常會創建日期維度中的多個層級,如日曆,金融和其他人僅包含財政年度,歷年,宿舍等

如果您有包含月份另一個層次,你可以與你正在使用的那一刻層級的一年CROSSJOIN;那麼在crossjoin函數中將不會使用相同的層次結構兩次。

E.g.

, NON EMPTY { 
    ([Date Dimension].[Financial].[Financial Year] 
    * [Date Dimension].[Calendar].[Month]) } 
+0

謝謝Danny,幸運的是我有另一個Hierarchy可用。有沒有其他的方式來組合這些成員從相同的層次結構? – Aquillo

+0

不幸的是,我不認爲有Aquillo。 –

1

如果你想跳過用戶層次中的水平,最好是crossjoint其餘級別的相應屬性的層次結構。

此處我使用屬性層次結構([Geography]。[City]。[City],..)來代替用戶層次結構([Geography]。[Geography]。[City],..)立方體:

SELECT 
[Measures].[Internet Sales Amount] ON 0, 
[Geography].[State-Province].[State-Province] * [Geography].[City].[City] ON 1 

FROM [Adventure Works公司]

菲利普,

0

這個問題涉及到試圖拉使用交叉連接同一層級多層次,你的確不能。正如其他答覆中提到的那樣,一個很好的解決方法是從相同的層次結構中抽取所需的列。但是,只有立方體設計允許它纔有效。

您的具體問題可能與您用於開發查詢的工具以及它返回的層次結構中的哪個級別有關。

例如,以下在SQL Server Management Studio中執行的查詢(通過版本V12.0.2000.8)只返回城市級別的層次結構。但是,如果從PowerPivot表導入嚮導中的設計模式內執行,它將返回層次結構中的所有級別,直至包括國家/地區,州/省和城市在內的城市級別。

select 
[Measures].[Internet Order Count] on columns, 
non empty [Customer].[Customer Geography].[City] on rows 
from [Adventure Works]