MDX - 在“Where”部分使用“iif”功能

时间:2010-03-16 15:21:27

标签: mdx where iif except

您好,我想知道如何使“iif”工作。

基本上,当发端人是“John Smith”时,我需要过滤工程“产品代码”。当前成员没有工作或者iif无效,

    SELECT 
  {
    (
      [Time].[Fiscal Hierarchy Time Calculations].[Month to Date],
      [Measures].[Sell - Bookings]
    )
  } ON COLUMNS,
  [Originators].[Originator One Letter Name].Children ON ROWS
FROM [Sales]
WHERE 
  (
    [Time].[Fiscal Month].&[2010-02-01T00:00:00],
    IIF
    (
        [Originators].[Originator One Letter Name].CurrentMember = "John Smith",
      Except
      (
        [Product Codes].[Product Primary Subcategory].Children,
        [Product Codes].[Product Primary Subcategory].&[ENGINEERING]
      ),
      [Product Codes].[Product Primary Subcategory].Children
    )
  );

有什么想法吗?

提前致谢。

维战

1 个答案:

答案 0 :(得分:0)

比较MDX中成员的最佳方法是使用IS

SELECT 
  {
    (
      [Time].[Fiscal Hierarchy Time Calculations].[Month to Date],
      [Measures].[Sell - Bookings]
    )
  } ON COLUMNS,
  [Originators].[Originator One Letter Name].Children ON ROWS
FROM [Sales]
WHERE 
  (
    [Time].[Fiscal Month].&[2010-02-01T00:00:00],
    IIF
    (
        [Originators].[Originator One Letter Name].CurrentMember IS
            [Originators].[Originator One Letter Name].[JOHN SMITH],
      Except
      (
        [Product Codes].[Product Primary Subcategory].Children,
        [Product Codes].[Product Primary Subcategory].&[ENGINEERING]
      ),
      [Product Codes].[Product Primary Subcategory].Children
    )
  );

当然,您必须更改[Originators].[Originator One Letter Name].[JOHN SMITH]以获取该成员的正确唯一名称