MDX内部联接返回重复的行并膨胀度量

时间:2013-10-10 14:51:30

标签: mdx olap olap-cube

我的多维数据集中有两个表,我通过ZIP加入,但最终会有重复记录,因为每个ZIP有多行。

TABLE_A
ZIP     CATEGORY   TYPE    VALUE90  VALUE75
33211   TOYS       TRAINS  GT        LT
33211   TOYS       TRAINS  GT        GT
33211   KITCHEN    TRAINS  GT        LT


TABLE_B   
ZIP       SALES   CATEGORY   DATE
33211     5.00     TOYS      10/10/11

我希望能够将TRAINS类型的拉链的销售额加起来并且VALUE90 = GT,但是因为它在ZIPS上进行内部联接,所以我得到多行,在这个例子中,SALES = 10.00。在SQL中,我可以选择(选择distinct(zips)...)但是如何在MDX中执行此操作?构建Table_A可能有更好的方法,但我不确定它会是什么。我基本上有特定级别的90,75,50,25等值,我需要能够按类别和类型查询这些值的不同组合的拉链。

SELECT 
    NON EMPTY {([CATEGORY].Members)} ON 0,
    NON EMPTY {([Measures].[SALES])} ON 1
FROM [mycube]
WHERE ([TABLE_A].[TYPE].[TRAINS].[GT])

2 个答案:

答案 0 :(得分:2)

您的设计不是星型模式。维度表(TABLE_A)应该具有每个记录唯一的主键,并且应该从事实表(包含度量的表)中引用。

答案 1 :(得分:0)

我同意,它看起来像多对多,只是没有完全设置。关于多对多的文档上个月刚刚被重写(SSAS产品文档),看看它是否有帮助? http://technet.microsoft.com/en-us/library/ms365407.aspx