Как сделать DISTINCT для нескольких столбцов в запросе DAX? - PullRequest
0 голосов
/ 13 января 2020

Я довольно новичок в мире DAX. Я пытаюсь получить различные записи по нескольким столбцам в запросе DAX, аналогично тому, как я делаю в SQL. Я попытался соединить две таблицы на основе модели в конструкторе запросов, который дал мне следующий запрос:

EVALUATE SUMMARIZECOLUMNS(
'Dim_Products'[SaleCode], 
'Dim_Products'[ProducttName],  
'Dim_TimeZone'[StartDate], 
'Dim_TimeZone'[StartTime], 
'Dim_TimeZone'[EndDate], 
'Dim_TimeZone'[EndTime], 
'Dim_TimeZone'[Variation],  
"Fact_Sales_Count", [Fact_Sales_Count]
)

Выполнение вышеизложенного дает дубликаты записей. Как я могу получить отдельные записи, когда пытаюсь вызвать это из SSRS?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 15 января 2020

На всякий случай, если это поможет кому-то в будущем.

EVALUATE 
DISTINCT(
SELECTCOLUMNS('Dim_Products',
'Dim_Products'[SaleCode], 
'Dim_Products'[ProducttName],  
'Dim_TimeZone'[StartDate], 
'Dim_TimeZone'[StartTime], 
'Dim_TimeZone'[EndDate], 
'Dim_TimeZone'[EndTime], 
'Dim_TimeZone'[Variation]))

И, если нам нужно добавить фильтр:

    EVALUATE 
        DISTINCT(
        SELECTCOLUMNS(
         FILTER('Dim_Products', 'Dim_Products'[SaleCode] = 123 && ('Dim_Products'[ProducttName] = "ABC" || 'Dim_Products'[ProducttName] = "XYZ" )),
        'Dim_Products'[SaleCode], 
        'Dim_Products'[ProducttName],  
        'Dim_TimeZone'[StartDate], 
        'Dim_TimeZone'[StartTime], 
        'Dim_TimeZone'[EndDate], 
        'Dim_TimeZone'[EndTime], 
        'Dim_TimeZone'[Variation]))
0 голосов
/ 13 января 2020

Посмотрите на: https://www.sqlbi.com/articles/introducing-summarizecolumns/

Вы переходите от столбцов "группировать по" к столбцам "сводки" по соглашению в списке аргументов к SUMMARIZECOLUMNS.

EG :

EVALUATE SUMMARIZECOLUMNS(
'Dim_Products'[SaleCode], 
'Dim_Products'[ProducttName],  
'Dim_TimeZone'[StartDate], 
'Dim_TimeZone'[StartTime], 
'Dim_TimeZone'[EndDate], 
'Dim_TimeZone'[EndTime], 
'Dim_TimeZone'[Variation],  
"Fact_Sales_Count", sum([Fact_Sales_Count])
)
...