SSAS总计显示问题

0
在SSAS中碰到一个问题,请教大神指教:

QQ图片20150818161502.png

正确计算                       请购金额合计=sum(请购单价*请购数量)
但是现在的计算方法为  请购金额合计=sum(请购单价)*sum(请购数量)
 
此处使用的是计算成员  
对应的MDX语句为
CREATE MEMBER CURRENTCUBE.[Measures].[请购金额]
 AS [Measures].[请购单价]*[Measures].[请购数量],
VISIBLE = 1; 
已邀请:
2

yan_learning - 90后IT女... 2015-08-19 回答

你不是有一列请购金额了吗?为什么不直接对这一列进行汇总呢?
 
另外,像你这种汇总方式的话,建议先在建立数据源视图的时候,就在事实表里新建一个命名计算列:请购金额=请购单价*请购数量,然后把请购金额做成度量值,这样进行汇总就不会有问题了。
2

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-08-19 回答

先试试这样改:
把[Measures].[请购单价]*[Measures].[请购数量] 改成 SUM([Measures].[请购单价]*[Measures].[请购数量])

不行的话试试这个:
CREATE MEMBER CURRENTCUBE.[Measures].[请购金额]
 AS [Measures].[请购单价]*[Measures].[请购数量],
VISIBLE = 1; 

Scope ([Dim Date].[Dim Date].[All], [Measures].[请购金额]) ;
This = Sum([Dim Date].[Date].[All].children) ;
End Scope ;
 
2

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-08-19 回答

 你先在 DSV那边创建一个命名查询
2.png


然后在MeasureGroup里能看到以下截图:
3.png


这时候聚合的结果如下 :
4.png


然后再写刚刚那个Scope语句,注意不是再创建CalulatedMember了,是写在 Calculation这个界面的第一个命令里: Calculate里。
注意看上一个帖子的截图


 
1

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-08-19 回答

发现一个更好的写法,比较简洁 Scope的嵌套形式。你可以试试看。 注意这里不要用 allmember, 而要像以下代码写的Members
SCOPE([Measures].[A Multiplied By B]);
    SCOPE([Date].[Date].[Date].MEMBERS);
        SCOPE([Product].[Product].[Product].MEMBERS);
            THIS = [Measures].[A] * [Measures].;
        END SCOPE;
    END SCOPE;
END SCOPE;
1.png


 
0

小春XC - 专注微软BI 2015-08-18 回答

没有人碰到过吗,自顶一下
0

小春XC - 专注微软BI 2015-08-19 回答

SCOPE([Measures].[请购金额]);
     SCOPE([请购日期].[日期].[日期].MEMBERS);
         SCOPE([物料].[物料组代码].[物料组代码].MEMBERS);
             THIS =[Measures].[请购单价]*[Measures].[请购数量];
         END SCOPE;
     END SCOPE;
 END SCOPE;
 
 
我这样写完之后不行啊
0

小春XC - 专注微软BI 2015-08-19 回答

强悍,能够解决这个问题了

要回复问题请先登录注册