多个维度的不同计数

时间:2015-11-12 13:56:58

标签: sql-server mdx business-intelligence olap

我是MDX的新手。

我必须实施一套指标。例如:

  

对于年龄在18岁及以上的患者的出院:    - 任何列出的食管切除ICD-9-CM程序代码;要么    - 任何列出的ICD-9-CM程序代码用于胃切除术和任何列出的食道癌ICD-9 CM诊断代码。 Link to complete spec here

因此,我认为我需要创建一个测量(让调用是countX),它计算属于某个计算集OR的事实(放电)的数量,属于某个其他计算集。如果一个事实属于两个集合,那么它应该只计算一次。

集合定义可能包含多个维度的交叉连接和过滤器。

然后,我们的想法是能够沿任何维度切割countX(理想情况下包括用于计算集合的维度)。

我已经了解到UNION运算符仅在连接相同维度的集合时才起作用。那么,我的方法是否可行使用MDX?也许我可以用不同的方式来表达问题以某种方式利用计算成员呢?

或者使用SQL创建使用正确信息填充的特定事实或维度表会更好吗?

由于

1 个答案:

答案 0 :(得分:2)

你可以通过创建使用两个维度的元组来联合两组不同的维度,但基本上忽略一个案例中的一个,而另一个案例中忽略另一个。

我不知道你的立方体或你的数据,所以我将使用非常简单的伪代码。假设您想要获取所有红色的小部件和所有小的小部件。

另一种思考方式是:我希望所有小部件都是红色的,无论其大小如何,我希望所有小部件都小,无论颜色如何。

所以psuedo-MDX用于表达这个:

({[dimColor].[&Red]}, {[dimSize].[All]})
+
({[dimColor].[All]}, {[dimSize].[&Small]})

从Dimension A获取您想要的特定成员,CrossJoined与Dimension B的所有成员。然后您可以使用Dimension A的所有成员,与Dimension B中的特定成员交叉加入UNION ,因为你已经满足了UNION的要求,即这两个集具有相同的维度。