奥威软件交流社区
本帖最后由 huang555qi 于 2011-9-3 14:33 编辑

1、查询所有月份对应胡数量
SELECT NON EMPTY { [Measures].[数量] } ON COLUMNS, NON EMPTY { ([时间].[时间].[].ALLMEMBERS ) } ON ROWS FROM [销售出库分析]
2、查询所有2010-07月份和08月份对应胡数量
SELECT NON EMPTY { [Measures].[数量] } ON COLUMNS, NON EMPTY { ([时间].[时间].[].ALLMEMBERS ) }  ON ROWS FROM
  (select {strtomember('[时间].[时间].[].&[2010].&[07]'),strtomember('[时间].[时间].[].&[2010].&[08]')} on columns from[销售出库分析] )
或(筛选成员维度必须不在Axis 轴)
   SELECT NON EMPTY { [Measures].[数量] } ON COLUMNS, NON EMPTY { ([部门].[部门].[级别 02].allMEMBERS ) }  ON ROWS FROM [销售出库分析]
where {strtomember('[时间].[时间].[].&[2010].&[08]'),strtomember('[时间].[时间].[].&[2010].&[07]')}

3、查询所有除了2010-07月份和08月份对应胡数量(用“-”表示相反
SELECT NON EMPTY { [Measures].[数量] } ON COLUMNS, NON EMPTY { ([时间].[时间].[].ALLMEMBERS ) }  ON ROWS FROM
  (select -{strtomember('[时间].[时间].[].&[2010].&[07]'),strtomember('[时间].[时间].[].&[2010].&[08]')} on columns from[销售出库分析] )
4、查询所有2010-07月份到09月份对应数量( “:”表示之间范围
SELECT NON EMPTY { [Measures].[数量] } ON COLUMNS, NON EMPTY { ([时间].[时间].[].ALLMEMBERS ) }  ON ROWS FROM
  (select {strtomember('[时间].[时间].[].&[2010].&[07]'):strtomember('[时间].[时间].[].&[2010].&[09]')} on columns from[销售出库分析] )
5、查询所有月份“Member_Caption”值包含7对应数量:
SELECT NON EMPTY { [Measures].[数量] } ON COLUMNS, NON EMPTY { ([时间].[时间].[].ALLMEMBERS ) }  ON ROWS FROM
  (select {filter([时间].[时间].[].ALLMEMBERS,Instr( [时间].[时间].currentmember.Properties( 'Member_Caption' ), '7' ) > 0)} on columns from[销售出库分析] )

6、查询所有月份“Member_Unique_Name”值不包含7对应数量:
   SELECT NON EMPTY { [Measures].[数量] } ON COLUMNS, NON EMPTY { ([时间].[时间].[].ALLMEMBERS ) }  ON ROWS FROM
  (select {filter([时间].[时间].[].ALLMEMBERS,Instr( [时间].[时间].currentmember.Properties( 'Member_Unique_Name' ), '7' ) <= 0)} on columns from[销售出库分析] )

注意:1若要带参数只需用参数表达式"@参数名称"替换具体筛选成元表达示"'[时间].[时间].[].&[2010].&[07]'"即可
SELECT NON EMPTY { [Measures].[数量] } ON COLUMNS, NON EMPTY { ([时间].[时间].[].ALLMEMBERS ) }  ON ROWS FROM
  (select {strtomember('[时间].[时间].[].&[2010].&[07]'),strtomember('[时间].[时间].[].&[2010].&[08]')} on columns from[销售出库分析] )
替换后为
SELECT NON EMPTY { [Measures].[数量] } ON COLUMNS, NON EMPTY { ([时间].[时间].[].ALLMEMBERS ) }  ON ROWS FROM
  (select {strtomember(@month1),strtomember(@month2)} on columns from[销售出库分析] )

2若不带参数strtomember函数可以省略
SELECT NON EMPTY { [Measures].[数量] } ON COLUMNS, NON EMPTY { ([时间].[时间].[].ALLMEMBERS ) }  ON ROWS FROM
  (select {strtomember('[时间].[时间].[].&[2010].&[07]'),strtomember('[时间].[时间].[].&[2010].&[08]')} on columns from[销售出库分析] )
可以写成
   SELECT NON EMPTY { [Measures].[数量] } ON COLUMNS, NON EMPTY { ([时间].[时间].[].ALLMEMBERS ) }  ON ROWS FROM
  (select {[时间].[时间].[].&[2010].&[07],[时间].[时间].[].&[2010].&[08]} on columns from[销售出库分析] )
3、若参数为多值则将strtomember函数改为strtoset
SELECT NON EMPTY { [Measures].[数量] } ON COLUMNS, NON EMPTY { ([时间].[时间].[].ALLMEMBERS ) }  ON ROWS FROM
  (select {strtomember('[时间].[时间].[].&[2010].&[07]'),strtomember('[时间].[时间].[].&[2010].&[08]')} on columns from[销售出库分析] )
改为:
SELECT NON EMPTY { [Measures].[数量] } ON COLUMNS, NON EMPTY { ([时间].[时间].[].ALLMEMBERS ) }  ON ROWS FROM
  (select {strtoset('{[时间].[时间].[].&[2010].&[07],[时间].[时间].[].&[2010].&[08]}')} on columns from[销售出库分析] )


分享到 :
0 人收藏

5 个回复

倒序浏览
IvanYip  版主 | 2011-9-3 09:18:06
SUPPER GOOD
zhzoubin  超级版主 | 2011-9-3 12:29:33
非常详细,学习一下
huang555qi  版主 | 2011-9-7 12:51:52
nduew 发表于 2011-9-6 18:48
真不知道,还有这么好心的楼主 支持

gdmvu  会员 | 2011-11-23 12:19:50
顶也~~~
ancestor  会员 | 2012-5-26 00:34:28
目前在学习BI中的MDX,感谢楼主分享,谢谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

奥威软件|联系奥威|新手须知| ( 粤ICP备09215901号-2   

Powered by Discuz! X3.2 © 2001-2016 Comsenz Inc.

返回顶部