version-control - 计算的尺寸/尺寸

标签 version-control olap mdx olap-cube

我对 MDX 比较陌生,并且正在尝试完成我认为应该是一件简单的事情,但我还没有找到任何解决方案。

我有一个销售立方体,其中一个衡量标准是利润,可以是负值也可以是正值。我想要得到一个实际上是正利润总和的衡量标准,即仅在新衡量标准中包含那些具有正利润的利润数字。

这里的技巧是这是在行详细信息级别上,类似于

将 MEMBER Measures.PositivePNL 作为 IIF(Measures.PNL > 0,Measures.PNL,0)

不起作用,因为它只适用于总数

最佳答案

我应该提到我正在使用 Mondrian/MySQL。我得出了类似的结论,但找到了一种使用 SQL 键表达式创建新的简并维度的方法(因此我实际上不需要向表添加列):

<Dimension name="PNLCategory">
    <Hierarchy hasAll="true">
        <Level name="PNLCategory" column="pnlCategory" uniqueMembers="true">
            <KeyExpression>
                <SQL dialect="generic"> <![CDATA[IF(pnl >= 0,'Winner','Loser')]]></SQL>
            </KeyExpression>
        </Level>
    </Hierarchy>
</Dimension>

现在计算成员变得很容易:

<CalculatedMember name="WinnersCountByPNL" aggregator="count" dimension="Measures">
  <Formula>([PNLCategory].[Winner], Measures.PNL)</Formula>
  <CalculatedMemberProperty name="FORMAT_STRING" value="$#,###"/>
  <CalculatedMemberProperty name="DATATYPE" value="Numeric"/>
</CalculatedMember>     

所以在这里我将求和限制为仅“获胜者”,这样做的好处是 Mondrian 不会从行表中检索 count(fact) 条目。

关于version-control - 计算的尺寸/尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2371539/

相关文章:

visual-studio - TFS - 注释 - 查看上次更改之前的更改

excel - Excel 中的 SSAS 筛选度量

sql-server - 使用 MDX 查询排序

MDX - 通过另一个成员值设置成员

MDX和AVG功能

svn - 您如何收到存储库更新的通知?

iis - VS 2012根据错误的路径启动应用程序

tfs - 如何查找特定用户在Team Foundation Server中已更改的所有文件

sql - 如何计算 OLAP 立方体的可能大小

hadoop - Apache Kylin- “Timeout visiting cube”和其他怪异现象