2017-06-29 2 views
1

計算されたメンバーをキューブに追加しようとしています。キューブには、特定のメジャーにデータがある最初の会計年度が返されます。計算されたメンバーをキューブ全体に強制する

この目的は、年がこの最初の年であるときに、さまざまな年々の計算された尺度を抑制(すなわちNULL化)することです。その年では、前年との比較は無意味です。私はこれまでのところ、これを持って

WITH MEMBER Measures.DataStartYear_Sales 
AS 
HEAD(
    NONEMPTY([Calendar].[Fiscal Periods].[Fiscal Year].Members,[Measures].[QuantityOrdered]) 
    ,1).Item(0).Properties("NAME") 

瞬間:

これは、クエリスコープのメジャーです。実験するのが簡単です。

b。最初の年の名前が見やすく返されます。最終的に私はメンバー自身を返すだけで、他の計算メンバー計算では年階層.CurrentMemberとのIS比較を行います。

私が予想した問題は、この測定値がキューブ全体で一度だけ計算されるようにすることです。しかし、それをクエリで使用した場合、明らかにコンテキストに反応します。たとえば、商品ディメンションをROWSに貼り付けると、各商品の最も早い注文日が異なるため、このメジャーの値は各行ごとに異なります。

これはもちろん便利ですが、私の望むものではありません。この方法でクエリコンテキストを無視し、常に同じ値を返すようにする方法はありますか?

私はSCOPE_ISOLATIONとSOLVE_ORDERを調べましたが、私はここでやろうとしていません。

私はDimension1.All、Dimension2.Allのタプルを指定することができます。DimensionN.All、キューブ内のすべての次元をカバーしていますが、それは乱雑で壊れやすいようです。

答えて

1

私は静的なセットでこれを達成できるかもしれないと思います。

WITH STATIC SET FirstYear AS 
HEAD 
    (
    NONEMPTY([Date].[Calendar Year].[Calendar Year].MEMBERS, [Measures].[Internet Sales Amount]) 
, 1 
    ) 
    MEMBER FirstYearName AS 
    FirstYear.ITEM(0).NAME 
SELECT 
[Measures].[FirstYearName] ON COLUMNS 
, [Date].[Calendar Year].[Calendar Year].MEMBERS 
    //Add as many dimensions as you like here...for example 
* [Product].[Product].[Product].MEMBERS 
ON ROWS 
FROM 
[Adventure Works] 
; 

出力例:

enter image description here

うまくいけば右のトラックにあなたを置く必要があります。ここに関係なく、コンテキストの同じ最初の年を生産するのAdventure Worksを使用した例です。

+0

Brilliant! STATICは私が探していたものでしたが、(何らかの理由で)STATICメンバーを作成するのではなく、STATIC SETを作成することしかできません。一度私は(シングルトン)セットを持っている、それは簡単だけど。 – SebTHU

関連する問題