所以我有一個措施的這個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」標誌爲每個父記錄過濾單個子記錄,因此不需要分組。 –