4

我每周提供销售数据,每季度提供查找数据。在 SSAS 数据立方体中,我预先计算了每个时间段的销售数据平均值,我需要做的是从 LookupTable 中获取相关记录以进行下一次计算,其中:LookupTable.Min < Sales Average < LookupTable.Max

例子:

销售额 = 297 + 33 + 311 = 641

平均销售额 = 213.66

LookupRecordShrinkageIndicator = Min < SalesAverage < Max = 0 < 213.66 < 9000 = 0.007

CREATE TABLE dbo.SalesData
(
    Id int,
    Sales decimal(18, 2)    )


CREATE TABLE dbo.LookupTable
(
    Id int,
    Min int,
    Max int,
    Shrinkage decimal(10, 5),
    Wages decimal(10, 5),
    Waste decimal(10, 5)
 )

INSERT [dbo].[SalesData] ([Id], [Sales]) VALUES (1, 297)
INSERT [dbo].[SalesData] ([Id], [Sales]) VALUES (2, 33)
INSERT [dbo].[SalesData] ([Id], [Sales]) VALUES (3, 311)

INSERT [dbo].[LookupTable] ([Id], [Min], [Max], [Shrinkage], [Wages], [Waste]) VALUES (1, 0, 9000, 0.00700, 0.12700, 0.00300)
INSERT [dbo].[LookupTable] ([Id], [Min], [Max], [Shrinkage], [Wages], [Waste]) VALUES (2, 9000, 9250, 0.00700, 0.12700, 0.00300)
INSERT [dbo].[LookupTable] ([Id], [Min], [Max], [Shrinkage], [Wages], [Waste]) VALUES (3, 9250, 9500, 0.00700, 0.12300, 0.00300)

我需要根据销售平均值创建计算成员,其中包含查找表中的指标以进行下一次计算。

4

1 回答 1

1

为了解决这个问题,我不得不使用我的 LookupTable 作为维度和度量,让我们看看我是如何做到的。

  1. 根据 LookupTable 创建维度:

  2. 添加 Lookup 度量执行多维数据集,并将 Lookup 维度添加到多维数据集。 立方体设计视图

  3. 在 Lookup 维度和 Lookup 度量组之间创建 Fact 关系

就这样:

让我们看一下 mdx 示例:

SELECT 
{
    FILTER([Lookup Table].[Id].AllMembers ,  [Measures].[Min] <= 213 AND [Measures].[Max] > 213 )
}
ON COLUMNS,
{
    [Measures].[Shrinkage - Lookup Table], [Measures].[Wages - Lookup Table], [Measures].[Waste - Lookup Table]

} ON ROWS
FROM
[MyCube]

结果:

MDX 查询结果

我希望这个例子会有用

于 2013-10-18T09:47:06.483 回答