我想在OLAP立方體中定義「所有時間到日期」的計算成員。我能夠通過計算YTD如下:OLAP/MDX - 定義計算所得成員,總計所有時間到日期的數據
SUM(YTD([Time].[Month].CurrentMember), [Measures].[Suits])
我怎麼能包括因爲我的數據開始所有日期?我的時間維度的樣子:
<Dimension type="TimeDimension" visible="true" foreignKey="granularity" highCardinality="false" name="Time">
<Hierarchy name="Time" visible="true" hasAll="true" primaryKey="eom_date">
<Table name="v_months" schema="bizdata">
</Table>
<Level name="Year" visible="true" column="year_number" type="String" uniqueMembers="false" levelType="TimeYears" hideMemberIf="Never">
</Level>
<Level name="Quarter" visible="true" column="quarter_number" type="String" uniqueMembers="false" levelType="TimeQuarters" hideMemberIf="Never">
</Level>
<Level name="Month" visible="true" column="month_number" type="String" uniqueMembers="false" levelType="TimeMonths" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
不知道相關:我使用的是蒙德里安OLAP服務器(Tomcat上運行),齋宮的前端,Postgres的數據庫
我已經嘗試了很多組合,但我無法弄清楚。
更新:我已經嘗試過使用語法通過Gonsalu建議:
<CalculatedMember name="YTD Suits" formatString="" formula="SUM(YTD([Time].[Month].CurrentMember), [Measures].[Suits])" dimension="Measures" visible="true">
</CalculatedMember>
<CalculatedMember name="PTD Suits" formatString="" formula="Sum({NULL:[Time].[Month].CurrentMember },[Measures].[Suits])" dimension="Measures" visible="true">
</CalculatedMember>
使用該蒙德里安開始時,我得到了以下錯誤消息(注意,YTD功能運作良好沒有第二個計算成員):
Caused by: mondrian.olap.MondrianException: Mondrian Error:Failed to parse query
'WITH
MEMBER [Measures].[Measures].[YTD Suits]
AS 'SUM(YTD([Time].[Month].CurrentMember), [Measures].[Suits])',
[$member_scope] = 'CUBE',
MEMBER_ORDINAL = 6
MEMBER [Measures].[Measures].[PTD Suits]
AS 'Sum({NULL:[Time].[Month].CurrentMember },[Measures].[Suits])',
[$member_scope] = 'CUBE',
MEMBER_ORDINAL = 7
SELECT FROM [Project Performance]'
謝謝你的任何想法。
謝謝您的回答,遺憾的是它看起來這是不是蒙德里安有效語法:/我已經更新了我的帖子錯誤我收到了。 –
在Pentaho的問題跟蹤器中找到[this issue](http://jira.pentaho.com/browse/MONDRIAN-264);雖然最後一條評論是從2007年開始的,但我不認爲在Mondrian的範圍規範中支持NULL。 – gonsalu