我的多维数据集中有两个表,我通过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])
答案 0 :(得分:2)
您的设计不是星型模式。维度表(TABLE_A)应该具有每个记录唯一的主键,并且应该从事实表(包含度量的表)中引用。
答案 1 :(得分:0)
我同意,它看起来像多对多,只是没有完全设置。关于多对多的文档上个月刚刚被重写(SSAS产品文档),看看它是否有帮助? http://technet.microsoft.com/en-us/library/ms365407.aspx