SSRS: частичное повторное использование запроса MDX? ИЛИ MDX как параметр? - PullRequest
1 голос
/ 08 июля 2011

в отчете служб отчетов SQL Server

возможно ли определить запрос MDX в отчете, а затем повторно использовать его несколько раз, но каждый раз с другим разделом WHERE.

т.е. раздел Члены и SELECT будут одинаковыми для каждой строки (MTD.Count YTD.Count)

но я бы хотел отфильтровать его 10 различными способами ..

Единственный способ, которым я могу думать об этом сейчас, - это добавить 10 наборов данных, каждый с отдельным разделом WHERE, но я хотел бы повторно использовать только один DS

АЛЬТЕРНАТИВА

Другим полностью приемлемым вариантом будет предоставление целых запросов многомерных выражений в отчет в качестве параметров какого-либо рода. Моя проблема заключается в том, что мои запросы MDX генерируются динамически (, включая количество фактических запросов ), и все это зависит от пользователя. Так есть ли способ, которым я мог бы предоставить n запросов MDX к отчету, и включить его в матрицу? Один из способов, которым я подумал сделать это сегодня, - это динамическое выделение всего RDL XML.

Ответы [ 2 ]

0 голосов
/ 12 июля 2011

Это, скорее всего, мое решение:

Вложенные

Да, вложенные отчеты спасли меня здесь .. Моя настоящая цель состояла в том, чтобы повторить один и тот же запрос MDX с другим разделом WHERE для каждой строки. Подотчеты предназначены именно для этого. Вы можете определить матрицу и связать ее с набором данных. Этот набор данных будет определять, сколько строк данных будет заполнено вашей матрицей.

Вы можете встроить вложенный отчет в ячейку вашей матрицы и передать ему параметр (в моем случае я пропускаю весь фильтр WHERE, но вы можете сделать его более детализированным и пропустить только поле.

Затем в вашем подотчете вы можете отобразить только один набор информации, основанный на параметре, который передается из родительского отчета.

вот еще несколько ссылок

Subreports

Разработка отчетов с помощью пользовательских запросов MDX

0 голосов
/ 09 июля 2011

Вы можете получить набор данных, используя несколько параметров, таких как:

SELECT
{
    StrToSet(@rowAxisMdx)
} ON 0,
{
    StrToSet(@columnAxisMdx)
} ON 1
FROM [Cube]
WHERE {
    @StrToSet(@slicerAxisMdx)
}

Это будет медленно, так как вы используете много функций StrToSet, но оно должно работать.

...