MDX语言中的Filter

<Dimension foreignKey="EMPLOYEE_ID" name="Employee">
<Hierarchy hasAll="true" primaryKey="EMPLOYEE_ID">
<Table name="TB_EMPLOYEE" schema="MYORACLE">
</Table>
<Level name="employeeId" column="EMPLOYEE_ID" 

nameColumn="EMPLOYEE_NAME" type="String" uniqueMembers="true" levelType="Regular" 

hideMemberIf="Never">
<Property name="IsNew" column="EMPLOYEE_NEW" 

type="Numeric">

</Property>
</Level>
</Hierarchy>
</Dimension>

前面是一个Employee维度的定义(后面还会用到Measure Salary,就是薪水这个Measure,定义就不在这里贴出来了),注意里面有IsNew属性的定义,IsNew有两个值,0和1。现在我需要通过IsNew来进行自定义显示,需要的时候显示0,或1或0,1。

MDX查询
(1)显示IsNew属性值 大于等于0 的[Employee]成员
select Measures.Salary on columns,
filter( { [Employee].[All Employees].Children } , [Employee].CurrentMember.Properties("IsNew") >= 0 ) on rows from Cube
结果:
Axis #0:
{}
Axis #1:
{[Measures].[Salary]}
Axis #2:
{[Employee].[All Employees].[张三]}
{[Employee].[All Employees].[李四]}
{[Employee].[All Employees].[王五]}
Row #0: 3,300
Row #1: 1,500
Row #2: 6,000

(2)显示IsNew属性值等于0的[Employee]成员
select Measures.Salary on columns, 
filter( { [Employee].[All Employees].Children } , [Employee].CurrentMember.Properties("IsNew") = 0 ) on rows from Cube
结果:
Axis #0:
{}
Axis #1:
{[Measures].[Salary]}
Axis #2:
{[Employee].[All Employees].[张三]}
{[Employee].[All Employees].[李四]}
Row #0: 3,300
Row #1: 1,500

原文地址:https://www.cnblogs.com/iammatthew/p/1803903.html