SSAS:基于两个不同的元素获得不同的计数

时间:2018-11-12 01:52:26

标签: sql ssas mdx cube

我需要创建一个属于两个不同维度的独特人数。

一个叫做[学生研究学位]。[现在是研究学位]。&[是] 另一个称为[学生研究学位]。[研究学位是否完成]。&[是]

如果其中一个是“是”,或者两者都是,那么我需要对记录进行计数。 如果两者都不是,我可以排除它。我有一个称为[措施]的行计数器措施。[隐藏学生ID的不同计数]。

如果仅将一个元素与该度量一起使用,我将得到正确的答案,但是如果我尝试交叉连接其他元素,则会得到NULL的结果。

例如

AGGREGATE(CROSSJOIN(
    [Student Research Degree].[Is Research Degree Current].&[Yes] 
        ,[Student Research Degree].[Is Research Degree Complete].&[Yes]
), [Measures].[Student ID Distinct Count Hidden])

我知道我可以在ETL中获得额外的价值,并让SQL来完成工作,最后这可能就是解决方案。有没有办法对这种事情做OR语句?

1 个答案:

答案 0 :(得分:0)

否,&[YES],&[YES]的TUPLE不会创建OR情况,我想在其他情况为[是]时希望[NO]。

我开始研究从ALL集开始的减法方法,并删除了元组中无效组合的不同数量,并从总计中减去了无效组合。这种方法确实有效,但是仅因为数据允许。如果一个人可以有多种组合,那是行不通的。

我目前正在与其余的多维数据集一起测试该方法。从所有方面来看,这都很完美,但是如果可以证明存在任何错误或不匹配,我将使用ETL。