jho*_*owe 6 dax powerbi powerbi-desktop
我正在努力在 DAX 中编写/计算此度量。召回率的定义是一个客户、资产组合在一周内(关闭日期,7 天期限)的重复服务预订计数(不同预订编号的计数,无论如何都应该是不同的,但以防万一)。所以我出去修理一台机器,如果我在一周内再次被要求为客户修理同一台机器,那么召回 1(如果我在一周内被多次召回,则召回更多)。我用不同的颜色突出显示了这些组。需要过滤掉空资产、关闭时间和空预订编号(这是通过以下代码中的 SQL 内连接完成的,需要在 DAX 查询中)谢谢!编辑:抱歉,我意识到如果我发布 sql 代码来生成数据会更有帮助,请参见下文:
SELECT
FB.BookingNumber,
FB.EngineerEmployeeID,
FWO.ServiceAccountRecID AS Customer,
FWO.AssetRecID AS Asset,
FWO.ClosedOn
FROM dbo.FactWorkOrder AS FWO JOIN dbo.FactBooking AS FB ON FB.WorkOrderID = FWO.WorkOrderID
WHERE FWO.WorkOrderType = 'Breakdown'
AND AssetRecID IS NOT NULL
AND ClosedOn IS NOT NULL
ORDER BY BookingNumber
Run Code Online (Sandbox Code Playgroud)
CloseOn如果您首先定义一个计算列来给出每个Customer/Asset组合的第一个日期,那么效率最高。
FirstClosed =
CALCULATE (
MIN ( WorkOrder[ClosedOn] ),
ALLEXCEPT ( WorkOrder, WorkOrder[Customer], WorkOrder[Asset] )
)
Run Code Online (Sandbox Code Playgroud)
然后写一个措施
TotalRecalls =
COUNTROWS (
FILTER (
WorkOrder,
WorkOrder[ClosedOn] > WorkOrder[FirstClosed] &&
WorkOrder[ClosedOn] < WorkOrder[FirstClosed] + 7
)
)
Run Code Online (Sandbox Code Playgroud)
但是,如果您愿意,您可以在一次测量中完成这一切。
TotalRecalls =
VAR AddCol =
ADDCOLUMNS (
WorkOrder,
"@FirstClosed",
CALCULATE (
MIN ( WorkOrder[ClosedOn] ),
ALLEXCEPT ( WorkOrder, WorkOrder[Customer], WorkOrder[Asset] )
)
)
RETURN
COUNTROWS (
FILTER (
AddCol,
WorkOrder[ClosedOn] > [@FirstClosed] &&
WorkOrder[ClosedOn] < [@FirstClosed] + 7
)
)
Run Code Online (Sandbox Code Playgroud)
无论哪种方式,这都是在视觉效果中使用的样子:
| 归档时间: |
|
| 查看次数: |
172 次 |
| 最近记录: |