2015-03-26 2 views
0

Я пытаюсь передать динамические параметры даты в Visual Studio SSRS, используя SSAS и конструктор запросов. Я пытаюсь получить мой MDX-запрос, чтобы вытащить с '1/1/2010' в последний месяц, используя поле CalendarMonth. Вот мой вопрос:Использование построителя запросов MDX в Visual Studio, как я могу отфильтровать параметры, чтобы выбрать «1/1/2010» - в прошлом месяце?

SELECT 
    NON EMPTY 
    { 
     [Measures].[Full Case Quantity] 
    ,[Measures].[Total] 
    ,[Measures].[Verified Total] 
    } ON COLUMNS 
,NON EMPTY 
    { 
     [PA Product].[PA Description].[PA Description].ALLMEMBERS* 
     [PA Product].[PA Product ID].[PA Product ID].ALLMEMBERS* 
     [Time].[Calendar Month].[Calendar Month].ALLMEMBERS* 
     [PA Product].[PA Uom].[PA Uom].ALLMEMBERS* 
     [Distributor].[Dist Name].[Dist Name].ALLMEMBERS* 
     [Time].[Calendar Year].[Calendar Year].ALLMEMBERS* 
     [Time].[Month Number Of Year].[Month Number Of Year].ALLMEMBERS 
    } 
    DIMENSION PROPERTIES 
    MEMBER_CAPTION 
    ,MEMBER_UNIQUE_NAME 
    ON ROWS 
FROM 
(
    SELECT 
    {[Concept OG].[Is Concept Display].&[1]} ON COLUMNS 
    FROM 
    (
    SELECT 
     {[Concept].[Concept ID].&[6501]} ON COLUMNS 
    FROM 
    (
     SELECT 
     NULL : StrToMember(@ToTimeCalendarMonth,CONSTRAINED) ON COLUMNS 
     FROM [Management] 
    ) 
) 
) 
WHERE 
    (
    [Concept].[Concept ID].&[6501] 
    ,[Concept OG].[Is Concept Display].&[1] 
) 
CELL PROPERTIES 
    VALUE 
,BACK_COLOR 
,FORE_COLOR 
,FORMATTED_VALUE 
,FORMAT_STRING 
,FONT_NAME 
,FONT_SIZE 
,FONT_FLAGS; 
+0

Все в порядке - в чем проблема? Это выглядит как действительный 'mdx' ...' NULL: StrToMember (@ ToTimeCalendarMonth, CONSTRAINED) ' – whytheq

+0

Нужно заменить нуль членом вашей даты на 1/1/2010 в' NULL: StrToMember (@ ToTimeCalendarMonth, CONSTRAINED) '? Или вы спрашиваете, как рассчитать последний месяц на основе текущей даты? – dotjoe

ответ

0

Не знаете, в чем проблема, так что нужно сделать рытье!

Если вы используете следующее в SSMS, что возвращается? Вам нужно будет заменить @ToTimeCalendarMonth с любой ваш параметр проходит в:

SELECT 
    {} on 0, 
    NULL : StrToMember(@ToTimeCalendarMonth,CONSTRAINED) ON 1 
FROM [Management] 

Параметр нужно будет что-то вроде этого ... Я не знаю, как члены в кубе выглядят так это предположение :

[Time].[Calendar Month].[Calendar Month].[200604] 
+0

Я пытаюсь сделать что-то вроде этого: 'FROM (SELECT (null: [Time]. [Calendar Month] .DefaultMember.Lag (-1)) ON COLUMNS' Таким образом я устанавливаю диапазон между моей начальной датой начала и эквивалентный оператор MDX для DATEADD (m, -1, getdate()) –