我有一个用于目标的多维数据集事实表,目标处于每月级别(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/