/ / [Data]. [Rok kalendarzowy] .CURRENTMEMBER.CHILDREN nie zbiera dzieci - ssas, mdx

[Data]. [Rok kalendarzowy] .CURRENTMEMBER.CHILDREN nie zbiera dzieci - ssas, mdx

Jeśli uruchomię następujące dwie niestandardowe miary, zwrócą te same wyniki. Dlaczego nie "t" [Measures].[AvgOfChildren] Zwróć średnią za poziom poniżej [Calendar Year] ?

WITH MEMBER [Measures].[Avg Yearly Reseller Sales Amount] AS
AVG(
{[Date].[Calendar].[Calendar Year].MEMBERS},
[Measures].[Reseller Sales Amount])
MEMBER [Measures].[AvgOfChildren] AS
AVG(
{[Date].[Calendar Year].CURRENTMEMBER.CHILDREN}, //[Date].[Calendar].[Month].MEMBERS
[Measures].[Reseller Sales Amount])
SELECT
{[Measures].[Avg Yearly Reseller Sales Amount],
[Measures].[AvgOfChildren]} ON 0,
{[Geography].[Geography].[Country].MEMBERS} ON 1
FROM [Adventure Works]

Odpowiedzi:

1 dla odpowiedzi № 1

Twoje oświadczenie nie zawiera żadnych ustawień dla [Date].[Calendar Year] hierarchii, ani w a WHERE warunek, ani w rzędach. A to oznacza, że CurrentMember ma wartość domyślną, która jest nazwana "Wszyscy członkowie" All Periods w tym przypadku.

Możesz to zweryfikować, dodając kolejnego obliczonego członka

Measures.CurrentYear as [Date].[Calendar Year].CURRENTMEMBER.NAME

i dodając to do twoich kolumn.


1 dla odpowiedzi nr 2

Myślę, że nie używasz poprawnej hierarchii, aby uzyskać odpowiedź, której oczekujesz.

Poprosiłeś o [data]. [Rok kalendarzowy] .currentmember.children w obliczeniach AvgOfChildren, ale myślę, że zamierzałeś użyć [date].[kalendarz]. [rok kalendarzowy] .currentmember.children.

[Data].[Rok kalendarzowy] to hierarchia utworzona dla atrybutu roku kalendarzowego. Hierarchia [data]. [Calendar] to hierarchia zdefiniowana przez użytkownika z wieloma poziomami, które prawdopodobnie wyglądają jak rok kalendarzowy -> kwartał kalendarzowy -> miesiąc -> data. Gdy poprosisz dzieci z tego roku kalendarzowego o tę hierarchię, powinieneś oczekiwać, że odpowiedź będzie inna, ponieważ używa ćwierćtuszy (lub cokolwiek masz jako poziom w roku kalendarzowym).


1 dla odpowiedzi nr 3

Nie masz daty [Data]. [Rok kalendarzowy] .CurrentMember zdefiniowany. Nie ma wzmianki o wymiarze [Data] w wierszach.

Spróbuj zamiast tego:

WITH MEMBER [Measures].[Avg Yearly Reseller Sales Amount] AS
AVG(
{[Date].[Calendar].[Calendar Year].MEMBERS},
[Measures].[Reseller Sales Amount])
MEMBER [Measures].[AvgOfChildren] AS
AVG(
{[Date].[Calendar Year].CURRENTMEMBER.CHILDREN}, //[Date].[Calendar].[Month].MEMBERS
[Measures].[Reseller Sales Amount])
SELECT
{[Measures].[Avg Yearly Reseller Sales Amount],
[Measures].[AvgOfChildren]} ON 0,
{[Geography].[Geography].[Country].MEMBERS} * [Date].[Calendar].[Calendar Year].MEMBERS ON 1
FROM [Adventure Works]

Pierwsza kolumna da ci średnią roczną (ta sama wartość dla wszystkich lat), druga da ci średnią dzieci w danym roku.