powerbi - 每个客户的第一个订单
问题描述
给定以下数据模型:
我需要构建一个显示以下属性的报告:
如您所见,我需要从SalesOrder
表 [InternDocumentNumber[] 中提供一个属性,因此视觉对象将具有订单级别的纹理。
现在,问题在于度量 [first order date v1],它应该计算客户的第一个订单日期,并为来自同一客户的所有不同订单显示此值。
到目前为止,我建立了以下措施
first order date v1 = CALCULATE (
FIRSTDATE( SalesOrderDate[SalesOrderDate]),
USERELATIONSHIP( SalesOrder[OrderDate], SalesOrderDate[SalesOrderDate]),
CROSSFILTER ( SalesOrder[OrderDate], SalesOrderDate[SalesOrderDate],both ),
ALL(SalesOrder)
)
但是,此度量会永远计算,并以错误结束:
你能告诉我如何写这个措施,所以它会表现得更好吗?
编辑
让我使用 DAX.DO 中的一个示例来更清楚地说明我想要得到什么。以下是查询屏幕和结果
我想要实现的是一种衡量标准,它将向我显示客户级别的最小订单日期,而不是现在的订单级别。换句话说,红色矩形中的值对于客户 6 应该是相同的,而不管表的粒度如何。这在 DAX 中是否可行?
参考 DAX.DO 片段:
https://dax.do/wxU6NNRHrencrg/
编辑 2
实际上,我现在能够设计一种解决问题的措施,但是它的表现非常糟糕(最终超时)
这是代码屏幕和 DAX.DO 参考
解决方案
你可以试试这个:
CALCULATE (
MIN ( Sales[Order Date] ),
ALLEXCEPT ( Sales, Customer[CustomerKey] )
)
推荐阅读
- java - 当前日期作为 Springfox 和 Swagger-UI 中的示例
- python - 从excel和python绘制的图表有什么区别?
- mysql - 如果记录不存在,如何在 group_concat 中添加空值?
- linq - LINQ 更新查询未更新 Xamarin 表单应用程序中的数据库记录
- node.js - 在 ubuntu 的后台运行 node js 应用程序
- c# - 如何获取在asp.net中使用我的webapi的请求url?
- batch-file - Window shell - 如果在文件中找到文本,则输出日志
- javascript - 如何防止手持设备在使用画布签名板时打开键盘?
- go - Cron Job 不使用 TimeZone 触发
- java - 即使从浏览器 api 调用复制粘贴 JSONObject.toString("variable") 声明字段也不存在