[英]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.