Мне нужно суммировать результаты нескольких запросов.
проблема, с которой я сталкиваюсь, состоит в том, что в каждом запросе определены члены (для вычисления диапазона дат)
мне нужно иметь возможность объединять / суммировать эти элементы по нескольким запросам MDX
WITH Member [M1] AS Sum(DateRange, Measure)
SELECT [M1]
FROM [Cube]
WHERE {[x].&[y]}
WITH Member [M1] AS Sum(Different DateRange, Measure)
SELECT [M1]
FROM [Cube]
WHERE {[z].&[q]}
каждый запрос выбирает одинаковых членов на основе разных критериев.
единственный способ, которым я могу думать об этом, - это UNION, а не SUM ([M1]), но не знаю, как это возможно в MDX
UPDATE - в ответ на вопрос icCube здесьВот почему мне нужно иметь отдельное предложение WHERE для каждого запроса:
Мне нужны отдельные секции WHERE для каждого запроса, потому что мне нужно агрегировать результаты различных срезов.а мои ломтики определяются по n количеству измерений.я отправляю mdx-запрос для каждого среза динамически на основе входных данных конфигурации пользователя (и динамически создаю мое предложение WHERE для фильтрации по пользовательским предпочтениям).Пользователям разрешено настраивать перекрывающиеся фрагменты (это те, которые мне нужно подытожить вместе).Затем мне нужно объединить эти счетчики строк в отчет.Я делаю это, передав строку с запросом MDX в отчет.но, поскольку я не могу придумать, как получить несколько запросов в одну исполняемую строку (и при этом я не знаю, сколько будет запросов), такой подход больше невозможен (если не существует способа их объединения / суммирования.
Единственный способ, которым я мог бы сейчас заняться, - это дополнительный шаг пакетирования , который будет перебирать все запросы, обрабатывать их (используя Adomd.net) в staging таблицы, и затем я могу агрегировать их в отчет, используя сумму SQL (..). Самым большим недостатком этого подхода является сохранение дополнительной системы и больше возможностей для устаревания данных в отчете.