Напишите вычисленный член, эквивалентный назначению области - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь лучше понять области и вычисляемые элементы, поэтому в базе данных AdventureWorks я сделал следующее:

Я написал это простое утверждение области видимости:

SCOPE([Customer].[Customer].[All Customers], [Measures].[Average Rate]);  
        /* This expression sets the value of the Amount measure */  
        THIS = 999;  
END SCOPE;  

Иэквивалентный вычисляемый элемент будет следующим:

Create Member CurrentCube.[Measures].[My Measure]
 AS 
iif([Customer].[Customer].currentmember IS [Customer].[Customer].[All Customers], 999, [Measures].[Average Rate]);

Но я не уверен, как создать вычисляемый элемент, который будет эквивалентен этому назначению области:

SCOPE([Customer].[Country].members, [Measures].[Average Rate]);  
        /* This expression sets the value of the Amount measure */  
        THIS = 999;  
END SCOPE; 

На самом деле я не уверен, какнаписать iff, который проверит, является ли текущий элемент измерения Customer членом [Customer]. [Country]

1 Ответ

0 голосов
/ 07 декабря 2018

Вот, пожалуйста,

///Will Display 999 for any member apart from All


     with Member [Measures].[My Measure]
         AS 
         iif([Customer].[Country].currentmember.Properties ("Member_Value",TYPED)='All Customers',[Measures].[Internet Sales Amount] , 999)

        select {[Measures].[Internet Sales Amount],[Measures].[My Measure]}
         on columns,

        [Customer].[Country].members
        on rows 
        from [Adventure Works]

    ///Will display 999 for any member
        with Member [Measures].[My Measure]
         AS 
         iif([Customer].[Country].currentmember.Properties ("Member_Value",TYPED)='WhatEver', 999, 999)

        select {[Measures].[Internet Sales Amount],[Measures].[My Measure]}
         on columns,

        [Customer].[Country].members
        on rows 
        from [Adventure Works]

// Ниже запросы помогают проверить, является ли член частью иерархии /////////////////////////////////////////////////////////////////////////////////////////

//Query checks if a Member is part of a hierarchy
with MEMBER TestIFAValidMember
as 
[Product].[Subcategory].[InvalidMember].UniqueName

MEMBER TestIFAValidMember2
as 
[Product].[Subcategory].[Caps].UniqueName

select {TestIFAValidMember,TestIFAValidMember2}
on columns 
FROM [Adventure Works]

Вы также можете попробовать

WITH MEMBER MEASURES.NotMember AS

IsSibling([Product].[Category].CURRENTMEMBER, [Product].[Category].[Invalid])

MEMBER MEASURES.ISMember AS

IsSibling([Product].[Category].CURRENTMEMBER, [Product].[Category].[Bikes])

SELECT {MEASURES.NotMember,MEASURES.ISMember} ON 0,

[Product].[Category].MEMBERS ON 1

FROM [Adventure Works]
...