2017-06-29 19 views
1

我正在嘗試向我的多維數據集添加一個計算成員,該計算成員將返回第一個會計年度,即在特定的度量中存在任何數據。將計算的成員強制轉換爲整個多維數據集

當年份是第一年時,其目的是抑制(即取消)各種年度計算指標:在那一年,與前一年的比較是沒有意義的。

我有了這個迄今:

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上粘貼Products維度,則此度量值對於每一行都會有所不同,因爲每個產品的最早訂單日期是不同的。

這當然很有用,但它不是我想要的。有沒有辦法強制這個措施忽略查詢上下文,並總是返回相同的值?

我看着SCOPE_ISOLATION和SOLVE_ORDER,但他們沒有做我想在這裏做的事情。

我想我可以指定Dimension1.All,Dimension2.All .... DimensionN.All的一個元組,覆蓋立方體中的所有尺寸,但看起來雜亂而脆弱。

回答

1

我想你可能可以用靜態集來實現這一點。下面是使用的Adventure Works不管生產方面的同第一年爲例:

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

這應該有希望把你在正確的軌道上。

+0

太棒了!靜態是我正在尋找的:但你只能創建靜態設置,而不是(出於某種原因)創建靜態成員。一旦我有了(單身)套裝,這很容易。 – SebTHU

相關問題