0

我的多维数据集中有两个表,我通过 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 中,我可以在 (select distinct(zips) ...) 中进行选择,但如何在 MDX 中执行此操作?可能有更好的方法来构建 Table_A,但我不确定它会是什么。对于特定级别,我基本上有 90、75、50、25 之类的值,我需要能够按类别和类型查询这些值的不同组合的 zip。

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

2 回答 2

2

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

于 2013-10-10T16:21:36.983 回答
0

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

于 2013-10-17T21:30:24.423 回答