MDX:动态生成会计年度范围

时间:2016-01-15 08:09:29

标签: database ssas mdx olap

我有日期参数,如

[Time].[Year -  Quarter -  Date].[Year].&[2015-01-01T00:00:00]

显示客户的会计年度何时开始。所以月份和年份都可以改变。

根据这一点,我需要创建将按会计年度计算线性回归(LinRegPoint函数)的查询。问题出在立方体的FiscalYear日期,它们有固定的开始月份。

WITH 
  MEMBER [Average Fees Per Copy] AS 
    LinRegPoint
    (
      Rank
      (
        [Time].[Year -  Quarter -  Date].CurrentMember
       ,[Time].[Year -  Quarter -  Date].[Year].MEMBERS
      )
     ,[Time].[Year -  Quarter -  Date].[Year]
     ,
      [Measures].[Spend] / [Measures].[Copies]
     ,Rank
      (
        [Time].[Year -  Quarter -  Date].CurrentMember
       ,[Time].[Year -  Quarter -  Date].[Year].MEMBERS
      )
    ) 
SELECT 
  {[Average Fees Per Copy]} ON COLUMNS
 ,[Time].[Year].MEMBERS ON ROWS
FROM [spend];

这是我的查询,它根据多维数据集的财政年度值(始终在第6个月开始)计算预测值。但是如何根据给定参数从我的月份开始减少多维数据集的年份,然后找到当前客户的会计年度的linregpoint值,其中计算将基于此减值?

1 个答案:

答案 0 :(得分:0)

目前我还没有根据给定的年份开始日期找到在查询中切割时间轴的解决方案,所以我使用了解决此问题的方法。

主要思想是创建自定义日期和时间维度,并通过多对多表格将其链接到日历维度。此日历表应存储具有不同开始年份日期的所有日历。因此,您的SSAS数据源可能类似于以下内容:

SSAS DSV

然后,您只需从M2M表创建度量,并在具有M2M关系的日期属性的维度中使用它。

要不在关系数据库中存储所有特定于日历的数据,您可以通过创建将根据请求计算所有数据的视图来改进此解决方案,以便所有这些数据仅存在于SSAS中。

您可以在此处找到更多信息:

https://elonblackman.wordpress.com/2010/03/17/handling-multiple-time-calendars-in-a-many-to-many-ssas-scenario/