отличный результат от функции sumx при применении к виртуальной таблице и вычисляемой таблице в DAX

#powerbi #dax

Вопрос:

СЛУЧАЙ 1:-

 I have created one calculated table using below code.

OverallUtilisation = SUMMARIZECOLUMNS(
Mergetable[CalculateDateFromUTC],FILTER(Mergetable,Mergetable[noShow]<>"TRUE"),
"OverallResourceDistCount", DISTINCTCOUNT(Mergetable[fkItemID]),
"OverallDuration(Hours)", SUMX(Mergetable,Mergetable[MeetingDurationInHours]))

OverallUtilisation Table 

CalculateDateFromUTC    OverallResourceDistCount    OverallDuration(Hours)
16-06-2021 00:00:00                 1                     0.25
17-06-2021 00:00:00                 1                     2.01666666666667
03-11-2020 00:00:00                 1                     0.5
14-09-2020 00:00:00                 1                     0.25
15-09-2020 00:00:00                 1                     2.75
04-08-2021 00:00:00                 1                     0.25
12-08-2021 00:00:00                 1                     0.25


applied maxx function to get measure of OverallDuration(Hours) and code given below.

MAXDURHRSTEST = MAXX(OverallUtilisation,OverallUtilisation[OverallDuration(Hours)])
result MAXDURHRSTEST = 2.75
 

СЛУЧАЙ 2:-

Я попытался получить результат в одном запросе dax. Код и результат приведены ниже. я немного смущен, почему я получаю другой результат, когда использую тот же код и логику. может ли кто-нибудь объяснить мне, что не так в моем коде или логике. это будет для меня большой помощью.

 MAXYY = 
VAR OverallUtilisationYY = SUMMARIZECOLUMNS(
Mergetable[CalculateDateFromUTC],FILTER(Mergetable,Mergetable[noShow]<>"TRUE"),
"OverallResourceDistCount", DISTINCTCOUNT(Mergetable[fkItemID]),
"OverallDuration(Hours)", SUMX(Mergetable,Mergetable[MeetingDurationInHours]))
RETURN
MAXX(OverallUtilisationYY,[OverallDuration(Hours)])
result MAXYY = 0.75
 

Комментарии:

1. Ключевое различие между вычисляемой и виртуальной таблицами заключается в том, что на виртуальную таблицу влияют фильтры в отчете, а на вычисляемую таблицу-нет.

2. почему я получаю другой результат?

3. Как я уже сказал, в случае 2 виртуальная таблица фильтруется, поэтому ваши вычисления основаны на подмножестве данных, в то время как в случае 1 они основаны на всех данных.

4. Могу ли я сделать это с помощью одного запроса dax с другим подходом, я хочу, чтобы фильтры работали? @РАДО