总计四分之一到一年的OLAP MDX

时间:2017-04-28 13:50:06

标签: excel mdx olap

我有以下时间层次: Year -> Quarter -> Week -> Day。 我设法将Q1 / Q2汇总为半年1(H1)和Q3 / Q4,作为过去几年(例如2016年)的半年2(H2):

Year    Quarter Ergebnis
Year 2016   Q1  2.688.627.598
Year 2016   Q2  2.114.089.713
Year 2016   Q3  3.064.536.554
Year 2016   Q4  3.451.472.537
**Year 2016 H1  4.802.717.311
Year 2016   H2  6.516.009.091**

我正在使用以下MDX查询来计算OLAP中的成员:

Parent Hierarchy - [Time].[Year - Quarter - Month - Date]
Parent Member -    [Time].[Year - Quarter - Month - Date].[Year].&[2016]

MDX:
[Time].[Year - Quarter - Month - Date].[Quarter].&[1]&[2016]
+
[Time].[Year - Quarter - Month - Date].[Quarter].&[2]&[2016]

但是,此MDX查询在当前年份(2017年)不起作用:

Year     Quarter    Total
Year 2017   Q1  2.550.081.058
Year 2017   Q2  627.640.711

我甚至无法汇总已完成的Q1。你知道如何在今年汇总第一季度和第二季度的工作方式,即使Q2尚未完成吗?

2 个答案:

答案 0 :(得分:1)

您在此处将年份值硬编码为MDX公式:

[Time].[Year - Quarter - Month - Date].[Quarter].&[1]&[2016]
+
[Time].[Year - Quarter - Month - Date].[Quarter].&[2]&[2016]

尝试改为:

[Time].[Year - Quarter - Month - Date].CurrentMember.Children.Item(0)
+
[Time].[Year - Quarter - Month - Date].CurrentMember.Children.Item(1)

答案 1 :(得分:0)

这是您的结果:

Year        Half    Total
Year 2016   H1      4,802,717,311 
Year 2016   H2      6,516,009,091 

你想要这个吗?

host

您需要将这两个成员添加到不同的dim / hier,即[Time].[Year - Quarter - Month - Date]维,而不是[Language].[Language]。我将使用`[Language].[Language].[All].[H1]` AGGREGATE( { [Time].[Year - Quarter - Month - Date].CurrentMember.Children.Item(0) ,[Time].[Year - Quarter - Month - Date].CurrentMember.Children.Item(1) } ,[Language].[Language].[All] ) - 只需将此更改为任何其他未使用的昏暗:

`[Language].[Language].[All].[H2]` 

 AGGREGATE(
  {
   [Time].[Year - Quarter - Month - Date].CurrentMember.Children.Item(2)
  ,[Time].[Year - Quarter - Month - Date].CurrentMember.Children.Item(3)
  }
   ,[Language].[Language].[All]
 )

和此:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-shade-plugin</artifactId>
   <version>3.0.0</version>
   <executions>
      <execution>
         <phase>package</phase>
         <goals>
            <goal>shade</goal>
         </goals>
         <configuration>
            <!-- <minimizeJar>true</minimizeJar> -->
            <createDependencyReducedPom>false</createDependencyReducedPom>
            <filters>
               <filter>
                  <artifact>*:*</artifact>
                  <excludes>
                     <exclude>META-INF/*.SF</exclude>
                     <exclude>META-INF/*.DSA</exclude>
                     <exclude>META-INF/*.RSA</exclude>
                  </excludes>
               </filter>
            </filters>
            <transformers>
               <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
            </transformers>
         </configuration>
      </execution>
   </executions>
</plugin>

然后在主轴维度中使用这些额外成员。