Исходя из this question regarding calculating a member меня 2 вычисляемых элементов определяется как:Определяемые пользователем иерархии в MDX запроса
MEMBER [Asset].[Class].[Fixed Income Derivatives]
AS
AGGREGATE(
{
[Asset].[Class].&[Fixed Income],
[Asset].[Sub Class].&[Derivatives]
},
[Measures].CurrentMember
)
MEMBER [Asset].[Class].[Fixed Income Non-derivatives]
AS
AGGREGATE(
{
[Asset].[Class].&[Fixed Income],
EXCEPT([Asset].[Sub Class].[Sub Class],[Asset].[Sub Class].&[Derivatives])
},
[Measures].CurrentMember
)
я могу использовать их в запросе MDX следующим образом:
SELECT
{
[Measures].[Market Value]
} ON 0,
NON EMPTY
{
[Asset].[Class].[Fixed Income Derivatives],
[Asset].[Class].[Fixed Income Non-derivatives]
[Asset].[Class].[Class]
} ON 1
FROM [Asset]
И это дает я выхожу следующим образом:
Class-----------------------|-MarketValue
============================|=============
Fixed Income Derivatives | 12345
Fixed Income Non-derivatives| 54321
Fixed Income | 66666
Property | 123
Equity | 987
Обратите внимание, что первые 2 строки на самом деле являются составными частями строки 3. Теперь я могу сделайте некоторую магию с клиентским кодом, который читает эти данные, чтобы превратить эту таблицу в иерархию, но ... и вот вопрос - могу ли я сделать это с помощью MDX? Или я просто усложняю вещи? Я не отрицателен при внесении изменений в куб, если это необходимо, или если бы я мог определить эту иерархию.
У одного узла есть дети (Fixed Income), а у 3 узлов нет. Это определение несбалансированного дерева? – Jamiec
Я обновил свой ответ, чтобы добавить ссылку на статью о размерах родитель-ребенка и несбалансированных иерархиях. – orka