所以我有一个措施的这个follwing DAX代码。我想要做的是用另一列BillDetail [SourceServiceMapID]替换Billdetail [SOurceWasteServiceID]。但问题是,对于单个SourceWasteServiceID,我可以为SourceServiceMapID提供多个记录。由于数据必须组合在一起,我不能直接用其他数据替换。该表在表中有一个IsCurrent标志,最新记录为“1”。我试图在Filter语句中使用这个IsCurrent,但仍然得到不匹配的数据。 有人对我如何改变这个问题有任何建议吗?DAX代码更改建议
在此先感谢您的帮助!
Sum of Volume:=CALCULATE(
SUMX(
Summarize(BillDetail
,BillDetail[SourceWasteServiceID]
,BillDetail[ActualBillMonth]
,WasteServiceMap[ContainerCount]
,WasteServiceMap[WasteContainerSizeQuantity]
,WasteServiceMap[WasteContainerSizeUnit]
,WasteServiceMap[WastePickupSchedule]
,WasteServiceMap[WastePickupFrequencyMultiplier]
,WasteServiceMap[PercentFull]
,WasteServiceMap[CompactionRatio]
,"ItemQuantity", CALCULATE(Sum(BillDetail[ActualItemQuantity]),BillDetail[AlternateBillDetailKey] = True)
)
,IF (UPPER((WasteServiceMap[WastePickupSchedule])) = "FIXED"
,(WasteServiceMap[ContainerCount])
* (WasteServiceMap[WasteContainerSizeQuantity])
*(IF(WasteServiceMap[WastePickupFrequencyMultiplier] = -1,0,WasteServiceMap[WastePickupFrequencyMultiplier]))
* (WasteServiceMap[PercentFull])
* (WasteServiceMap[CompactionRatio])
*IF(UPPER((WasteServiceMap[WasteContainerSizeUnit])) = "GALLONS"
, 0.00495113169
, IF(UPPER((WasteServiceMap[WasteContainerSizeUnit])) = "LITERS"
, 0.00130795062
,IF(UPPER((WasteServiceMap[WasteContainerSizeUnit])) = "YARDS"
,1
,BLANK())
)
)
, IF (OR(OR(OR(UPPER((WasteServiceMap[WastePickupSchedule])) = "ON CALL" ,UPPER((WasteServiceMap[WastePickupSchedule])) = "MAILBACK"),UPPER((WasteServiceMap[WastePickupSchedule])) = "HAND PICKUP"),UPPER((WasteServiceMap[WastePickupSchedule])) = "SCHEDULED ONCALL")
, (WasteServiceMap[WasteContainerSizeQuantity])
* (WasteServiceMap[CompactionRatio])
* (WasteServiceMap[PercentFull])
* ([ItemQuantity])
*IF(UPPER((WasteServiceMap[WasteContainerSizeUnit])) = "GALLONS"
, 0.00495113169
, IF(UPPER((WasteServiceMap[WasteContainerSizeUnit])) = "LITERS"
, 0.00130795062
,IF(UPPER((WasteServiceMap[WasteContainerSizeUnit])) = "YARDS"
,1
,BLANK())
)
)
, 0
)
)
)
)
在这种情况下,你假设只有一个子id对应于父ID,但这不是案子。有一个父ID的多个子ID。问题是,在当前的代码逻辑下,父ID被分组(SUMX子句)。我试图用child id替换这个父id,然后在ISCurrent = 1中添加一个过滤器,但仍得到不同的结果集。 – Dennyc
你误解了我的假设。有一个父母身份证有多个孩子ID。所以,请再次检查我的答案。并且...如果您有标识当前子记录的“IsCurrent”标志,为什么需要使用分组功能?解决方案I提供了基于“IsCurrent”标志为每个父记录过滤单个子记录,因此不需要分组。 –