Проблемы с диапазоном дат многомерных выражений

#reporting-services #ssrs-2008 #mdx

Вопрос:

Похоже, что запрос не может заставить диапазон дат работать. Я передаю две даты в качестве параметров, и, исходя из этого, я ожидал бы [Sector Name] , что выпадающие значения будут получены на основе диапазона дат( @FromJoinDateDate:@ToJoinDateDate ) и обоих @ADMTRANSINSpecialty , и @ADMTRANSINSite последние два, похоже, работают правильно.

Пример параметров:
@FromJoinDateDate: [Sector_Join_Date].[Date].amp;[2020-07-29T00:00:00]
@ToJoinDateDate: [Sector_Join_Date].[Date].amp;[2021-07-29T00:00:00]

 WITH 
MEMBER [Measures].[ParameterCaption] AS [ADM_TRANS_IN].[Sector Name].CURRENTMEMBER.MEMBER_CAPTION 
MEMBER [Measures].[ParameterValue] AS [ADM_TRANS_IN].[Sector Name].CURRENTMEMBER.UNIQUENAME 
MEMBER [Measures].[ParameterLevel] AS [ADM_TRANS_IN].[Sector Name].CURRENTMEMBER.LEVEL.ORDINAL 

SELECT {
[Measures].[ParameterCaption], 
[Measures].[ParameterValue],
[Measures].[ParameterLevel]

} ON COLUMNS , 
[ADM_TRANS_IN].[Sector Name].ALLMEMBERS ON ROWS 
FROM ( SELECT ( STRTOSET(@ADMTRANSINSpecialty, CONSTRAINED) ) ON COLUMNS 
FROM ( SELECT ( STRTOSET(@ADMTRANSINSite, CONSTRAINED) ) ON COLUMNS 
FROM ( SELECT { STRTOMEMBER(@FromJoinDateDate, CONSTRAINED) : 
                  STRTOMEMBER(@ToJoinDateDate, CONSTRAINED) } ON COLUMNS 
FROM [Model])))
 

введите описание изображения здесь

У меня такое чувство, что функция StrToMember может возвращать значение null в обоих случаях, поэтому результаты не соответствуют запросу, однако мне нужно использовать ее, чтобы использовать функцию диапазона. Может быть, это также формат даты, не соответствующий тому, что находится в кубе?

Ответ №1:

Один из способов проверить фактическое значение формата даты в измерении даты заключается в следующем:

  • Создайте новый запрос
  • Перейдите к измерению даты, разверните элементы, выберите дату и перетащите ее в окно запроса.

Затем это покажет вам точный формат даты для ваших данных. Ниже приведен пример снимка экрана с использованием образца AdventureWorks:

Как видно, несмотря на то, что в дереве он показан как «1 января 2005 года», фактические данные имеют формат: 20050101.

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

введите описание изображения здесь