Power BI DAX,不同表中的多列合并到一张表中

问题描述 投票:0回答:1

我需要将四个不同表中的列合并到一个汇总表中。我在这些表之间有一对多的关系。我想使用 DAX 公式来执行此操作,目前我可以将不同的列拖动到表格视觉效果中,并得到预期的结果,但我想避免以这种方式解决问题。

我编写了以下公式,目前它仅显示“purchase_requisition”表中的列。我想包含“eng_firms”、“business-unit”和“user”表中的一列。到目前为止我尝试过的内容已被注释掉。当我尝试添加不同表中的列时,它告诉我这些列不存在,或者该列与当前上下文中可用的任何表没有关系。

我一开始有FILTER的原因是因为'purchase_requisition'表有超过100,000行。

我还尝试使用 SUMMARIZECOLUMNS 来替换 SELECTCOLUMNS,这给出了一个不同的错误,指出无法确定列 [item_delivery_date_lfdat] 的单个值。

FilteredTable = 
SELECTCOLUMNS(
    FILTER(
        purchase_requisition,
        purchase_requisition[item_delivery_date_lfdat] = TODAY() &&
        purchase_requisition[flag_goods_service] = "Service" &&
        purchase_requisition[deletion_indicator_in_purchasing_document_loekz] <> "X"
    ),
    "ReqNumber", 'purchase_requisition'[purchase_requisition_number_banfn],
    "ProjectTitle", 'purchase_requisition'[short_text_txz01],
    "DeliveryDate", purchase_requisition[item_delivery_date_lfdat]--,
    --"Firm", RELATED('eng-firms'[Parent]),
    --"BusinessUnit", RELATED('business-unit'[business_unit.1]),
    --"EmailAddress", RELATED(user[email_address])
)
powerbi dax
1个回答
0
投票

我尝试在 TableA 上使用 3 个表和 2 个过滤器复制您的示例:

enter image description here

MyTable = 
FILTER(
    ADDCOLUMNS(
        CROSSJOIN(
            SELECTCOLUMNS(
                FILTER(TableA, TableA[ColA] <> "XXXX"),
                "Id", TableA[Id],
                "ColA_TableA", TableA[ColA]
            ),
            SELECTCOLUMNS(
                TableB,
                "ColB_TableB", TableB[ColB]
            ),
            SELECTCOLUMNS(
                FILTER(TableC, TableC[ColC] = TODAY()),
                "ColC_TableC", TableC[ColC]
            )
        ),
        "ColA", [ColA_TableA],
        "ColB", [ColB_TableB],
        "ColC", [ColC_TableC]
    ),
    NOT ISBLANK([ColA]) && NOT ISBLANK([ColB]) && NOT ISBLANK([ColC])
)
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.