DAX-запрос для выбора значений между двумя заданными датами - PullRequest
0 голосов
/ 10 ноября 2018

Я новичок в запросе DAX и пытаюсь получить отдельный список promotion_name из таблицы promotion между двумя датами из двух других столбцов этой таблицы. Я написал ниже DAX-запрос для меры. Однако я получаю ошибку. Я уверен, что запрос не правильный. Могу ли я получить помощь?

Measure = 
CALCULATE(VALUES(promotion[promotion_name]),
FILTER (ALL(promotion),
    promotion[start_date] >= DATE(1997,1,1) &&
    promotion[end_date] <= DATE(1997,12,31)))

В основном я хочу реализовать этот запрос SQL в DAX:

select promotion_name
from promotion
where start_date >= '1998-01-01 00:00:00' AND
        end_date <= '1998-12-31 00:00:00'

1 Ответ

0 голосов
/ 10 ноября 2018

Вы почти у цели. Как утверждает Алексис, это выражение DAX возвращает таблицу, а не одно значение, например меру. Так что используйте CALCULATETABLE вместо CALCULATE. Функция ALL в выражении FILTER здесь не нужна. Попробуйте это в New Table на вкладке Modeling:

Table =
CALCULATETABLE (
    VALUES ( promotion[promotion_name] ),
    FILTER (
        promotion,
        promotion[start_date] >= DATE ( 1997, 1, 1 )
            && promotion[end_date] <= DATE ( 1997, 12, 31 )
    )
)

Обратите внимание, что VALUES ( promotion[promotion_name] ) вернет различные значения. Если вам нужны все значения с дубликатами, вам нужно заменить VALUES ( promotion[promotion_name] ) на SELECTCOLUMNS('promotion',"promotion_name",'promotion'[promotion_name]).

...