Как извлечь PARENT_UNIQUE_NAME и HIERARCHY_UNIQUE_NAME из запроса MDX - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть запрос, который я получаю, который дает мне месяц, сумму в долларах и количество транзакций для данной розничной категории и местоположения для некоторых имеющихся у меня розничных данных.

Это запрос, который я использовалExcel и SQL Profiler для получения:

SELECT {
    [Measures].[Dollar Amount],
    [Measures].[Transaction Count]
 } 
 DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME 
 ON COLUMNS , 
 NON EMPTY 
    Hierarchize({DrilldownLevel({[Retail Sales Date].[Month].[All]},,,INCLUDE_CALC_MEMBERS)}) 
 DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME 
 ON ROWS  
 FROM [Retail Sales Cube] 
 WHERE ([Retail Category].[Retail Category].[All],[Geography].[Retail Sales Location].[Geography].&[3000]) 
 CELL PROPERTIES VALUE, FORMAT_STRING, LANGUAGE, BACK_COLOR, FORE_COLOR, FONT_FLAGS

Я использую версию adomd для dot net core для получения значений, используя пакет Unsupported.Microsoft.AnalysisServices.AdomdClientNetCore, который, по-видимому, не реализован CellSet.

Итак, чтобы получить данные, я выполняю следующий бит кода C #:

using (var cn = new AdomdConnection("Data Source=myservername;Catalog=MyCube"))
{
    cn.Open();
    using (var cmd = cn.CreateCommand())
    {

        cmd.CommandText =
@" SELECT {
[Measures].[Dollar Amount],
[Measures].[Transaction Count]
}
DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME ON 0 , 
NON EMPTY Hierarchize({ DrilldownLevel({[Retail Sales Date].[Month].[All]
},,,INCLUDE_CALC_MEMBERS)}) 
DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME ON 1
FROM[Retail Sales Cube]
WHERE([Retail Category].[Retail Category].[All], [Geography].[Retail Sales Location].[Geography].&[3000])
CELL PROPERTIES VALUE, FORMAT_STRING, LANGUAGE, BACK_COLOR, FORE_COLOR, FONT_FLAGS";

        using (var dr = cmd.ExecuteReader())
        {

            while (dr.Read())
            {

                var fieldCount = dr.FieldCount;
                for (var i = 0; i < fieldCount; i++)
                {
                    var name = dr.GetName(i);
                    var dataTypeName = dr.GetDataTypeName(i);
                    Debug.WriteLine("{0}:{1}:{2}", dr[i], dataTypeName, name);
                }
                Debug.WriteLine(Convert.ToString(dr[0]));
            }
            dr.Close();
        }
    }
    cn.Close();
}

Я могу успешно получить данные, но это не дает мне доступа к PARENT_UNIQUE_NAME илиАтрибуты измерения HIERARCHY_UNIQUE_NAME.

Как я могу получить атрибуты PARENT_UNIQUE_NAME и HIERARCHY_UNIQUE_NAME?

...