首页 > 解决方案 > 对应于最大日期和连接的查找值

问题描述

我有两个表如下:

命令:

+----+------------+---------+
| ID |    DATE    | PURPOSE |
+----+------------+---------+
|  1 | 01-02-2020 | A       |
|  1 | 03-03-2020 | B       |
|  1 | 03-03-2020 | C       |
|  2 | 02-02-2020 | A       |
|  2 | 01-02-2020 | D       |
|  2 | 02-02-2020 | E       |
|  3 | 04-05-2020 | X       |
|  3 | 04-05-2020 | Y       |
|  3 | 04-05-2020 | Z       |
|  4 | 01-01-2020 | M       |
|  5 | 06-07-2020 | N       |
+----+------------+---------+

顾客:

+----+
| ID |
+----+
|  1 |
|  2 |
|  3 |
|  4 |
|  5 |
|  6 |
+----+

我想匹配 ID 并提取每个 ID 的最大日期,并将这些 ID 的 PURPOSE 连接起来

所以结果表如下:

+----+------------+---------+
| ID |  MAX_DATE  | PURPOSE |
+----+------------+---------+
|  1 | 03-03-2020 | B,C     |
|  2 | 02-02-2020 | A,E     |
|  3 | 04-05-2020 | X,Y,Z   |
|  4 | 01-01-2020 | M       |
|  5 | 06-07-2020 | N       |
|  6 |            |         |
+----+------------+---------+

目前,要获取最大日期列,我正在使用以下查询:

MAX_DATE = 
VAR _MaxDate =
    CALCULATE (
        MAX ( ORDER[DATE] ),
        FILTER ( ORDER,ORDER[ID] = CUSTOMER[ID] )
)
 RETURN 
    LOOKUPVALUE (
        ORDER[DATE],
        ORDER[DATE], _MaxDate,
        ORDER[ID], CUSTOMER[ID]

我不确定如何使用相同或相似的度量来连接 PURPOSE 列

标签: powerbidaxpowerquery

解决方案


要获取 PURPOSE 列,您可以使用以下命令:

PURPOSE =
VAR cust = CUSTOMER[ID]
return CALCULATE(CONCATINATEX(ORDER, ORDER[PURPOSE], ","), FILTER(ORDER, cust = ORDER[ID]))

您的 MAX_DATE 也可以更容易解决(以相同的方式)。

MaxDate = 
VAR cust = CUSTOMER[ID]
return CALCULATE(MAX('ORDER'[DATE]), FILTER('ORDER', cust = 'ORDER'[ID]))

推荐阅读