簡體   English   中英

在MDX函數中將計算所得的成員用作參數

[英]Using calculated member as parameter in MDX function

我是MDX的新手,但想保持我的代碼盡可能整潔。

我有一個查詢,查詢今天的銷售情況,並使用ParallelPeriod函數將其與LY和LY-1進行比較。 看起來像這樣。

With Member [Date].[SalesCalendar].[DateToday] as [Date].[SalesCalendar].[Date].&[2012-10-26T00:00:00]

SELECT 

    {[Date].[SalesCalendar].[DateToday],

    ParallelPeriod([Date].[SalesCalendar].[Year],1,[Date].[SalesCalendar].[Date].&[2012-10-26T00:00:00]),

    ParallelPeriod([Date].[SalesCalendar].[Year],2,[Date].[SalesCalendar].[DateToday]}

    *  

    {[Measures].[Total Sales],[Measures].[Units],[Measures].[Sales Target]}
    ON Columns,

    [Locations].[Location PK].[Location PK]
    on Rows

From MyCube

我首先定義一個指向今天的日期的成員。 我想一次定義它,並在整個查詢(以及我編寫的其他查詢)中使用它,理論上講,我可以一次更改它,並且基礎查詢會做出反應。

我遇到的問題是,如果我嘗試在ParallelPeriod函數中使用此計算所得成員,則不會獲得任何結果。 通過上面的查詢,我得到第一列的結果,並且對ParallelPeriod的第一次調用(對於LY)有效,但是對使用已聲明成員的LY-1的第二次調用失敗。

我猜這是由於我缺乏對MDX的了解,所以我想我缺少一些基本知識。 但是,用頭撞牆是行不通的,因此我需要一些幫助!

有什么想法我做錯了嗎?

謝謝

這行不通,因為當您的查詢評估為[Date].[SalesCalendar].[DateToday] ,沒有替換為[Date].[SalesCalendar].[Date].&[2012-10-26T00:00:00]

您在透視表單元格中創建了一個成員,該成員將提供與[Date].[SalesCalendar].[Date].&[2012-10-26T00:00:00]相同的數值。

您可以嘗試以下查詢:

With Member [Date].[SalesCalendar].[DateToday] as [Date].[SalesCalendar].[Date].&[2012-10-26T00:00:00]
     Member [Measures].[name] as [Date].[SalesCalendar].CurrentMember.Name

SELECT 
    {[Measures].[name], [Measures].[Total Sales]} ON Columns,
    {[Date].[SalesCalendar].[DateToday], [Date].[SalesCalendar].[Date].&[2012-10-26T00:00:00]} on Rows
From MyCube

Total Sales將相同,但[Measures].[name]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM