значение ssas между двумя датами - PullRequest
0 голосов
/ 05 марта 2020

Я пытаюсь получить суммы tot_ack в MDX, чтобы она отображалась в измерении erit и в cc (размер счета). Однако я не могу понять, как моделировать между датами. Я новичок в MDX.

 select  SUM(tot_ack)    from
DBO.DIM_OBJ_ACC AS ACC INNER JOIN
 DBO.FAKTA_SALDO AS saldo ON ACC.ACC_ID = saldo.ACC_ID INNER JOIN
 DBO.DATE_OBJ_KP AS KP ON saldo.KP_ID = KP.KP_ID INNER JOIN 
   DBO.PERIOD AS PERIOD ON saldo.PERIOD = PERIOD.PERIOD
where   
 ACC.ACC _ID = '3001' and ACC.erit_ID = '1'
   (DATEADD(day, 0,DATEADD(month, 11,DATEADD(year,2011-1900, 0))) BETWEEN KP.KP_DATE_START AND KP.KP_DATE_END) AND 
     (PERIOD.MONTH= 12 OR PERIOD .MONTH=0) AND (PERIOD.YEAR =2011)  

Мой MDX-код

  SELECT {[DIM OBJ ERIT].[ERIT ID].MEMBERS}    ON COLUMNS,
    {[DATE OBJ ACC].[ACC ID].members} ON ROWS
    FROM [REPORT]
WHERE  (Measures.[tot ack],
    [PERIOD].[year].[2011],
    [PERIOD].[month].[12],  
    [DATE OBJ KP].[KP DATE START].[Year].[2011],
    [DATE OBJ KP].[KP DATUM END].[Year].[2011]
    )

1 Ответ

1 голос
/ 06 марта 2020

В MDX вы указываете диапазон с ":". Таким образом, ваш запрос должен быть

SELECT {[DIM OBJ ERIT].[ERIT ID].MEMBERS}    ON COLUMNS,
    {[DATE OBJ ACC].[ACC ID].members} ON ROWS
    FROM [REPORT]
WHERE  (Measures.[tot ack],
    [PERIOD].[year].[2011],
    [PERIOD].[month].[12],  
    [DATE OBJ KP].[KP DATE START].[Year].[2011]:[DATE OBJ KP].[KP DATUM END].[Year].[2011]
    )

Взгляните на пример ниже

select 
[Measures].[Internet Sales Amount]
on columns,
[Product].[Category].[Category]
on rows 
from [Adventure Works]

Результат enter image description here

Теперь давайте отфильтруем его за 2013 -01-01 до 2013-01-10

select 
[Measures].[Internet Sales Amount]
on columns,
[Product].[Category].[Category]
on rows 
from [Adventure Works]
where 
[Date].[Date].&[20130101]:[Date].[Date].&[20130110]

Результат enter image description here

...