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 № 1Twoje 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.