Я пытаюсь написать запрос MDX, чтобы вернуть некоторую информацию об условиях опроса. Я хочу, чтобы в моих результатах был средний ответ и итоговые ответы. У меня есть два типа вопросов. Один тип вопроса имеет один ответ. Другой тип вопроса может содержать несколько ответов (выберите все, что применимо). Каждый вопрос связан с идентификатором вопроса и идентификатором респондента. Следующий запрос работает (несколько)Как получить количество отличительных значений размера в запросе SSAS MDX
Select NON EMPTY
{
[Measures].[Average Response], [Measures].[Total Count]
} ON 0
, NON EMPTY
{
([Question].[Question ID].[Question ID].ALLMEMBERS)
} ON 1
From [Cube]
ответ представляет собой комбинацию из двух отдельных реакций и нескольких ответов (две разных таблиц фактов). Общий счет также является комбинацией двух таблиц. Проблема в том, что для вопросов с одним ответом я могу просто подсчитать количество респондентов. Для ответов на несколько ответов, которые выпадают, поскольку у меня есть больше ответов, чем у людей, принимающих опрос. Я действительно хочу знать, сколько людей ответили. Для этого мне кажется, что мне нужно определенное количество идентификаторов респондентов. Поэтому я попытался изменить мою первую ось на это.
[Measures].[Average Response], [Measures].[Total Count], DISTINCTCOUNT([Respondent].[Respondent ID])
Ну, это не работает, и я действительно этого не ожидал. Я получил «Функция ожидает выражения набора кортежей для аргумента 3. Используется строковое или числовое выражение»., который быстро становится моим любимым сообщением об ошибке SSAS. Я все еще зеленый, и я думаю, что я все еще думаю о SQL. Как я могу получить среднее количество ответов и количество отдельных значений измерения в одном запросе. BTW, у моего запроса есть slicer, и я мог бы предоставить это, если это необходимо, но я не думаю, что это имеет значение, поскольку я получаю те же проблемы с или без slicer.
Я пробовал то, что вы положили, и я получаю мое любимое сообщение _ «Функция ожидает выражения набора кортежей для аргумента 1. Было использовано строковое или числовое выражение». _ Также, если я попытаюсь использовать его вместе со средним Я получаю _ «Члены, кортежи или наборы должны использовать одни и те же иерархии в функции». _ Отвратительная часть - я точно знаю, как это сделать в SQL. –
Я могу сопереживать - я до сих пор довольно паршиво отношусь к MDX и уже много лет занимаюсь SSAS ;-). Говоря об этом, когда вы запускаете функцию 'distinctcount', что происходит, когда вы вручную создаете набор, например. 'с установкой myset как '{[Ответчик]. [Идентификатор респондента]. & [Q1], [Ответчик]. [Идентификатор респондента]. & [Q2], [Ответчик]. [Идентификатор респондента]. & [Q3]}' '(обновите участников вопроса в зависимости от ситуации) и посмотрите, сможете ли вы вернуть ответ? –