Здравствуйте!
Есть MDX-запрос к OLAP запустить через Microsoft SQL Managemant Studio
Select {[Measures].[Отгрузки шт]} on 0, [Города].[Город].[Город] on 1 from profit
то выдает такой результат
Город | Отгрузка | Город1 | 11000 | Город2 | 12000 | Город3 | 13000 | Город4 | 14000 | ... | ... |
|
А если запустить такой же запрос, но без меры
Select {} on 0, [Города].[Город].[Город] on 1 from profit
то выдает без столбца меры
Город | Город1 | Город2 | Город3 | Город4 | ... |
|
Все выгружает так как надо.
Но иначе выгружается, если выгружать через COM-соединение: ADO.
Во вложенной примере есть код, который выгружает с OLAP и вставляет в таблицу Access.
Если запускать такой MDX-запрос
Select {[Measures].[Отгрузки шт]} on 0, [Города].[Город].[Город] on 1 from profit
то все нормально выгружает.
А если в MDX не указывать меру
Select {} on 0, [Города].[Город].[Город] on 1 from profit
, то возвращает пустое количество строк.
MDX-запросы написаны правильно. Учитывая, что OLAP это не реляционные, а многомерные таблицы.
Почему так работает? Это особенность COM-соединения (ADO)? Если да, то как можно обойти? Или как можно выгрузить строки, если в MDX-запросе не указывать меры? И как тут можно выгружать по другому?
Часто бывает необходимость выгрузки без меры.
http://www.sql.ru/forum/1268974/ado-i-olap