我正在构建一个模型以允许报告两个单独的数据集,对于这个例子,我们会说一个学生数据集和一个员工数据集。
数据集非常独立,两者之间唯一真正的联系是日期,所以从模型的角度来看,有一个学生星模式和一个员工星模式。
显示的数据是快照类型的数据,回答如下问题: - 对于选定的日期,显示所有在职员工 - 对于选定的日期,显示所有已注册的学生
This means that when a single date is selected, the model then finds all employees where the selected date falls within the employment start & end date , and finds all students where the selected date falls within the enrolled start & end date.
这意味着我必须做出决定,如何使用单个日期维度从每个模式返回正确的数据。创建关系将不起作用,因为表格中的关系不允许“之间”类型的查询,因此我有一个不相关的日期维度,并且每个模型的 Dax 都会找到适用的行。
问题是它不是性能最好的。对于可能 50k 行,添加一个度量可能需要 5-10 秒。
我问是否有更好的方法来编写查询或更改模型以仍然让我进行“介于”样式查询但提供更好的性能。
下面是一个 dax 查询示例,用于返回在特定日期注册的所有学生。
感谢您的任何建议。
All Enrolled Students:=IF (
HASONEVALUE ( 'Date'[Date] ),
CALCULATE (
DISTINCTCOUNT ( 'Students'[StudentID] ),
FILTER (
'Students',
'Students'[StudentStartDateID] <= MIN ( 'Date'[DateID] )
&& 'Students'[StudentEndDateID] >= MAX ( 'Date'[DateID] )
)
),
BLANK ())