2010-03-16 3 views
0

Привет, я хотел бы знать, как сделать эту работу «iif».MDX - Использование функции «iif» в разделе «Где»

В принципе, мне нужно отфильтровать инженерные «коды продуктов», когда составитель «Джон Смит». currentmember не работает или что 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 
    ) 
); 

Любые идеи?

Заранее спасибо.

Зуй

ответ

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] для правильного уникального имени элемента

Смежные вопросы