首页 > 解决方案 > 每个客户的第一个订单

问题描述

给定以下数据模型:

在此处输入图像描述

我需要构建一个显示以下属性的报告:

在此处输入图像描述

如您所见,我需要从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 参考

在此处输入图像描述

https://dax.do/wxU6NNRHrencrg/

标签: powerbidax

解决方案


你可以试试这个:

CALCULATE (
    MIN ( Sales[Order Date] ),
    ALLEXCEPT ( Sales, Customer[CustomerKey] )
)

推荐阅读