列出所有按维度属性值过滤的维度成员

List all dimension members filtering on dimension attribute value

我想列出 Dimension.Car 中状态为 IsPremium = 1 的所有汽车。 而且,来自 Dimension.Car 的所有汽车的单独列表具有状态 IsFourWeeler = 1

维度具有如下属性: 1.车码 2. 车名 3. IsPremium 4. 是四轮车

如果它们在 相同 维度中是不同的层次结构(属性或用户层次结构),那么您可以使用函数 EXISTS.

此处定义:https://msdn.microsoft.com/en-us/library/ms144936.aspx?f=255&MSPPError=-2147217396

他们展示的例子和你的情况是一样的:

SELECT 
  [Measures].[Internet Sales Amount] ON 0,
  EXISTS(
    [Customer].[Customer].[Customer].MEMBERS
 , {[Customer].[State-Province].&[CA]&[US]}
  ) ON 1 
FROM [Adventure Works];

但是你有

SELECT 
  [Measures].[SomeMeasuresInCube] ON 0,
  EXISTS(
     [Dimension.Car].[Car].MEMBERS
  ,  [[Dimension.Car]].[IsPremium].[1]
  ) ON 1 
FROM [YourCube];

NonEmpty也可以成为你的朋友:

WITH SET [SpecialCars] AS
  NONEMPTY(
    [Dimension.Car].[Car].MEMBERS
  ,([[Dimension.Car]].[IsFourWheeler].[1])
  )  
SELECT 
  [Measures].[SomeMeasuresInCube] ON 0,
  [SpecialCars]     ON 1 
FROM [YourCube];