MDX - Использование функции «iif» в разделе «Где» - PullRequest
0 голосов
/ 16 марта 2010

Привет, я хотел бы знать, как заставить это "iif" работать.

По сути, мне нужно отфильтровать инженерные «коды продуктов», когда инициатором является «Джон Смит». текущий член не работает или если 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 голосов
/ 17 марта 2010

Лучший способ сравнить членов в 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] на правильное уникальное имя участника

...