В моем отчете MDX, основанном на кубе, входная справка для даты должна быть календарем, поэтому необходим параметр даты/времени параметра. Поле во времени, с помощью которого я фильтрую данные, является Integer. Пример значения: 20130827.SSAS - Передача параметра отчета MDX в запрос набора данных MDX
Мой набор данных запрос выглядит следующим образом:
SELECT NON EMPTY { [Measures].[Hours In Track] } ON COLUMNS, NON EMPTY {
([Dim Date].[Date ID].[Date ID].ALLMEMBERS * [Dim Division].[Hierarchy].[Division ID].ALLMEMBERS) }
DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM
(SELECT (STRTOSET(@DimDivisionHierarchy, CONSTRAINED)) ON COLUMNS FROM
(SELECT (STRTOMEMBER(@FromDimDateDateID, CONSTRAINED) : STRTOMEMBER(@ToDimDateDateID, CONSTRAINED)) ON COLUMNS FROM [BicepsArveCube]))
CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
Я использовал текстовое поле, которое показало мне, что значение параметра типа дата/время выглядит следующим образом: 2013-08-05 00:00:00, а мой DateID - тип Integer, поэтому мне нужно сделать преобразование.
Когда на вкладке параметров набора данных указываю значение параметра как выражение:
="[Dim Date].[Date ID].&["
& Replace(Replace("2013-08-05 00:00:00", "-", ""), " 00:00:00", "")
& "]"
Я получаю данные, как и ожидалось, все работает отлично. Но когда я изменил жёстко прописанное значение даты/время для значения параметра (дата/время типа):
="[Dim Date].[Date ID].&["
& Replace(Replace(Parameters!FromDimDateDateID.Value, "-", ""), " 00:00:00", "")
& "]"
Я получаю ошибку нарушения ограничений. Я не знаю почему, потому что, как написано выше, Parameters!FromDimDateDateID.Value
выглядит точно так же, как и жестко закодированное значение, которое я использовал.
Я использовал текстовое поле, чтобы проверить, что выражение я получаю после преобразования в обеих случаях (HARDCODED даты и те же даты, выбранные из календаря и переданные в качестве значения параметра), и он выглядит точно так же:
[Dim Date].[Date ID].&[20130805]
Привет, спасибо за ответ, но после реализации вашей идеи при попытке выполнить запрос у меня появилось сообщение об ошибке «Произошла следующая системная ошибка: доступ запрещен». –
Можете ли вы определить из сообщения, если сообщение получено из SSRS или SSAS? У вас есть полный доступ ко всем частям куба или существуют ограничения доступа в кубе? – FrankPl
Эта ошибка исходит из служб SQL Server 2012 Analysis Services. Нет ограничений доступа, и я проверил все возможные роли, priviliges и т. Д. Я мог, все еще имея ту же ошибку :( –