Daniel 11317535 Ответов: 1

Как выбрать ограничить результирующий набор из запроса многомерных выражений в SQL сервере


Я пишу многомерные запросы для SQL server 2008 и пытаюсь посмотреть на данные из перекрестного соединения 2 измерений. Вероятно, слишком много данных для отображения результата, поэтому я просто хочу вернуть 10 лучших результатов. Как я могу это сделать?

Текущий Запрос

select {[Measures].[Measure1], [Measures].[Measure1], [Measures].[Measure1]} on columns, 
crossjoin([Dimension].[Dimension].[Dimension].&[123], [Dimension2].[Dimension2].[Dimension2])  on rows
from [Cube name]


Как должен выглядеть мой запрос?

Herman<T>.Instance

Разве это не так, что он должен сначала создать перекрестное соединение, прежде чем он сможет определить 1-е 10 строк?

1 Ответов

Рейтинг:
2

Robert Griner

Используйте TopCount()[^] функция. Помните, что набор уже должен быть заказан с помощью Порядок (многомерные выражения)[^] функция.



select 
{
    [Measures].[Measure1], [Measures].[Measure1]
    , [Measures].[Measure1]
} 
on columns,
topcount(
    crossjoin(
        [Dimension].[Dimension].[Dimension].&[123]
        , [Dimension2].[Dimension2].[Dimension2]
    )
,10
)
on rows
from [Cube name]