Treatas DAX函数无法正常工作,返回完整的空白列

问题描述

我试图了解Treatas DAX功能。有两个表资产 Ticket 票证表具有父子关系。对于Asset [AssetKey]的每个值,我想计算故障单表中的子代数。这些表之间有两个关系。一活跃和一非活跃。

问题:当我使用Treatas函数完成度量时,孩子数被空白。我用的公式-

Number of Child = CALCULATE(COUNT(Tickets[AssetKey]),TREATAS(SUMMARIZE(Asset,Asset[AssetKey]),Tickets[ParentId]))

要复制该方案,请执行以下步骤:

步骤1:创建表资产

Asset = DATATABLE("AssetKey",INTEGER,"Name",STRING,{{1,"Australia"},{2,"Belgium"},{3,"Canada"},{4,"Denmark"},{5,"England"}})

创建表格门票

Tickets = DATATABLE("AssetKey","ParentId","TicketKey",{{3,1,1},{1,Blank(),3},4},2,5},6},7},8},9},10}})

第2步:在AssetKey列上的Assets和Ticket表之间建立关系(一对多)。

enter image description here

Step3:现在创建以下度量-

Number Of Tickets = COUNT(Tickets[TicketKey])

Number of Child = CALCULATE(COUNT(Tickets[AssetKey]),Tickets[ParentId]))

现在的问题:为什么孩子数列为空白。

enter image description here

预期输出为:

enter image description here

解决方法

您的问题不是TREATAS,而是汇总。 TREATAS需要表输入,因此您可以进行总结。

尝试以下操作:

summarizedAsset = SUMMARIZE(Asset,Asset[AssetKey])

这将返回1,2,3,4,5。逻辑,因为这就是您要执行的操作。现在TREATAS将在票务表上执行相同的操作。因此,它返回一个表,该表的一列值为“ empty”,1,2。正是我们可以期望的。 接下来,您在AssetKey上执行COUNT,此刚创建的表没有此列,因此返回空。

您要查找的是一个,用于计算子项:

Number of Child = 
var Akey = Asset[AssetKey]
return CALCULATE(COUNT(Tickets[ParentId]),filter(Tickets,Akey = Tickets[ParentId]))

这将完全返回您要查找的内容。 enter image description here

PS:10分,您在提问的问题上做得很出色,易于他人复制。你是专业人士!!

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...