我需要将四个不同表中的列合并到一个汇总表中。我在这些表之间有一对多的关系。我想使用 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])
)
我尝试在 TableA 上使用 3 个表和 2 个过滤器复制您的示例:
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])
)