2012-12-18 46 views
0

我有一個可以使用的MDX語句,但我想擴展它。當前的聲明將特定年份的前10位帶回州,其中行是州,列是總收入。我想生成5列 - 每列和每行代表不同的一年。我將如何去實現這一目標?MDX:關於推進查詢的建議

with 
    member measures.[Total Earnings] as 
    (measures.[Total GS]) + (measures.[Total DE]) + (measures.[Total SE]) 
    set [Top 10 States] as 
    topcount 
    (
    {Stores.[State Code]. [State Code].members}, 
    10, 
    (Measures.[Total Earnings], [Time].[C Year].[2011]) 
) 
    select 
    {([Measures].[Total Earnings])} on columns, 
    {[Top 10 States]} on rows 
    from LoyaltyMeasurements 
    Where (Time.[C Year].[2011]); 
+0

更多細節需要:你還是要選定年度這些10的前10個國家和[總收入] 5個前幾年,還是你想要10個列,其中前兩個有2011年前10個州的數值,然後是2個前10個州,2010年的數值等。 – Bill

+0

我正在尋找所選年份和4年前10個州。因此,列可能看起來像總收入 - 2011年,總收入 - 2010年等,而仍然會有10行列出州代碼。 – plditallo

回答

0

我認爲你正在尋找的功能是ParallelPeriod

MEMBER measures.[Total Earnings Prev1] as 
    Aggregate(
    ParallelPeriod([Time].[C Year], 1, [Time].CurrentMember), 
    (measures.[Total GS]) + (measures.[Total DE]) + (measures.[Total SE]) 
    )