Dax: LOD для извлечения последнего значения - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть следующая таблица, в которой я пытаюсь извлечь Статус на основе Последняя дата

--------------------------------------
   Date    | User |  Status  | ID |
--------------------------------------
12-01-2019 |  A   | Approved | 1A |
14-01-2019 |  A   | Approved | 1A |    
21-02-2019 |  B   | Rejected | 2B |
26-02-2019 |  B   | Approved | 2B |
--------------------------------------

Я использовал следующий DAX

Max_date = Calculate(max(table1[Date]),(ALLEXCEPT(table1,table1[User],table1[ID]))

Result = Calculate(max(table1[Status]), FILTER(ALLEXCEPT(table1,table1[User],table1[ID]),
                   table1[Date]= table1[Max_date]))

Что дает мне следующий результат

---------------------------------------------------------
   Date    | User |  Status  | ID | Max_Date  | Result  |
---------------------------------------------------------
12-01-2019 |  A   | Approved | 1A |14-01-2019 |Approved |
14-01-2019 |  A   | Approved | 1A |14-01-2019 |Approved |
21-02-2019 |  B   | Rejected | 2B |26-02-2019 |Approved |
26-02-2019 |  B   | Approved | 2B |26-02-2019 |Approved |
----------------------------------------------------------

Моя таблица2,

------------------------------
| ID    |  Car     | Type    |
------------------------------
|  1A   | Benz     | A-class |
|  1B   | Benz     | B-class |    
|  1C   | Benz     | C-class |
|  1B   | BMW      | M1      |  
|  2B   | BMW      | M2      |
------------------------------

Я определил связь с таблицами table1 и table2. [Сопоставленный идентификатор с идентификатором в обеих таблицах] Когда я добавляю Car и Type в свою таблицу, данные всплывают (аналогично перекрестному соединению).

--------------------------------------------------------------------------
   Date    | User |  Status  | ID | Max_Date  | Result  | Car  | Type    |
--------------------------------------------------------------------------
12-01-2019 |  A   | Approved | 1A |14-01-2019 |Approved | Benz | A-Class |
14-01-2019 |  A   | Approved | 1A |14-01-2019 |Approved | Benz | A-Class |
21-02-2019 |  B   | Rejected | 2B |26-02-2019 |Approved | Benz | B-Class |
26-02-2019 |  B   | Approved | 2B |26-02-2019 |Approved | Benz | B-Class |
12-01-2019 |  A   | Approved | 1A |14-01-2019 |Approved | BMW  | M1      |
14-01-2019 |  A   | Approved | 1A |14-01-2019 |Approved | BMW  | M2      |
21-02-2019 |  B   | Rejected | 2B |26-02-2019 |Approved | BMW  | M1      |
26-02-2019 |  B   | Approved | 2B |26-02-2019 |Approved | BMW  | M2      |
--------------------------------------------------------------------------

Вывод My Desired,


   Date    | User |  Status  | ID | Max_Date  | Result  | Car  | Type    |
--------------------------------------------------------------------------
12-01-2019 |  A   | Approved | 1A |14-01-2019 |Approved | Benz | A-Class |
14-01-2019 |  A   | Approved | 1A |14-01-2019 |Approved | Benz | A-Class |
21-02-2019 |  B   | Rejected | 2B |26-02-2019 |Approved | BMW  | M1      |
26-02-2019 |  B   | Approved | 2B |26-02-2019 |Approved | BMW  | M2      |

1 Ответ

0 голосов
/ 06 февраля 2020

Вы можете использовать показатели для расчета того, что вам нужно:

Last Date = CALCULATE(LASTDATE(myTable[Date]), ALL(myTable[Date],myTable[Status]))

Last Status = LOOKUPVALUE(myTable[Status], myTable[Date], [Last Date])

Примечание: если у вас есть таблица календаря, используйте столбец даты календаря.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...