我有一个用于目标的多维数据集事实表,目标处于每月级别(Jan = 300、Feb = 450、Mar = 350 等)

这在使用月份作为连接时加入了我的多维数据集中的日期维度,但是维度粒度是在天级别。

我想要做的是创建一个计算,以便将月度目标平均分配给该月的天数,因此 1 月的每一天都有 300/31 Feb 450/28 等的目标。

然后,我希望能够将此计算出的度量用作我的目标,并将其用作每日/每月/每季度/每年的目标。

我认为这应该可以通过 MDX 语句(或者一些使用一些计算的度量)来实现,但我对它不太熟悉。

那么这种方法会起作用吗,mdx 会是什么样子?

谢谢

最佳答案

如果您有能力对源 OLTP/登台数据库进行更改,那么如果您需要在该级别进行报告,最好将目标事实表的粒度更改为每日。如果您的 OLTP 数据库中有一个日期维度表,您可以通过将月度事实表连接到月属性上的日期维度,然后将目标值均匀分布在该月的天数上,来使用 View 执行此操作。

如果您使用的是 SQL Server 并且您的 OLTP 架构如下所示:

CREATE TABLE dimDate (
    Date Date,
    YearMonth Integer,
    ...
)

CREATE TABLE factMonthlyTarget (
   YearMonth Integer,
   Value Integer,
   ...
)

您的新事实 View 将类似于以下内容:
CREATE VIEW factDailyTarget AS
   SELECT
      dimDate.Date,
      factMonthlyTarget.Value / Months.DaysPerMonth AS Value
   FROM
      factMonthlyTarget,
      dimDate,
      (
         SELECT YearMonth, COUNT(*) AS DaysPerMonth
         FROM dimDate
         GROUP BY YearMonth
      ) Months
   WHERE factMonthlyTarget.YearMonth = Months.YearMonth
         AND Months.YearMonth = dimDate.YearMonth

关于ssas - 使用 MDX 语句在 SSAS 中创建多维数据集计算以将每月目标分配到每日级别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13829155/

10-16 01:31