我是Analysis Services的新手,正在从事表格模型设计。需要专家针对最佳方法以及如何处理以下情况的建议/建议。
假设,我在下面的两个表Department和Employee中存储了不同客户(承租人)的数据,并且这两个表之间存在一对多(1:M)的关系(即一个部门可以具有1个或多个)员工)
但是,假设两个表格均为SCD类型2,即存储具有生效日期和终止日期的历史记录。在数据库级别的这些表上没有任何约束,索引等。
Department table:
cust_id dept_id dept_name efctv_dt trmntn_dt Dept_key
1001 D1 IT 12-01-2018 12-31-9999 1001D1
1001 D2 HR 01-01-2019 12-31-9999 1001D2
1002 D3 Admin 02-01-2019 02-28-2019 1002D3
1002 D3 HR+Admin 03-01-2019 12-31-9999 1002D3
1002 D4 Finance 02-01-2019 12-31-9999 1002D4
Employee table:
cust_id emp_id emp_name dept_id efctv_dt trmntn_dt Emp_key
1001 E1 XYZ D1 01-01-2019 01-31-2019 1001D1
1001 E1 XYZ-A D1 02-01-2019 12-31-9999 1001D1
1001 E2 ABC D2 02-01-2019 12-31-9999 1001D2
1002 E3 AXBYCZ D3 03-01-2019 03-31-2019 1002D3
1002 E3 AXBYCZ D4 04-01-2019 12-31-9999 1002D4
1002 E4 DEFG D4 04-01-2019 12-31-9999 1002D4
列cust_id和dept_id可以在两个表中作为一个单独的列连接在一起作为键字段,并可以用作两个表之间的联接。
部门键=串联(部门[cust_id],部门[dept_id])
Employee Key = Concatenate(employee [cust_id],employee [dept_id])
示例键输出值= 1001D1、1001D2、1002D3、1002D4
现在,我们有以下报告要求,即
要过滤日期范围(在可视化中)-假设存在另一个包含所有日期和层次结构的日期维度表
1)如果未选择特定的日期范围或过滤器-请显示所有当前在职员工和部门的名称(其中trmntn_dt = 12-31-9999)
因此,预期输出为:
员工姓名部门姓名
XYZ-A IT
ABC HR
AXBYCZ财务
2)在报告特定月份的示例(2019年1月)时,显示截至该月为止所有活动的员工和部门名称。 因此,预期输出为:
员工姓名部门姓名
XYZ IT
3)在报告特定季度示例-2019年第一季度时-显示截至该季度为止所有活动的员工和部门名称。 因此,预期输出为:
员工姓名部门姓名
XYZ-A IT
ABC HR
AXBYCZ HR + Admin
但是,这两个表之间具有1:M关系的AS Tabular模型的连接条件将失败,因为在关系的一侧的Department表中的行不是唯一的(D3的行)。 / p>
如果在两个表的级联连接条件中也包含efctv_dt或trmntn_dt,则作为连接关键字,即
部门键=串联(部门[cust_id],部门[dept_id])和串联(部门[efctv_dt],””))
Employee Key = Concatenate(employee [cust_id],employee [dept_id])&Concatenate(employee [efctv_dt],””))
示例键输出值= 1001D112-01-2018、1001D201-01-2019 ...
但是,尽管现在行将是唯一的,因为我们不希望同一天同一行两次(除非某些ETL问题,例如进程在同一天运行两次,等等)
AS表格模型不允许创建复杂的联接/条件(例如在SAP BO Universe中),因此当我们按以下方式联接这两个SCD type 2表时,可以添加以下条件,这可能有助于解决一些要求。
dept.cust_id = emp.cust_id
And dept.dept_id = emp.dept_id
And ( calendar_date is between efctv_dt and trmntn_dt
Or
trmntn_dt = ’12-31-9999’
)
我认为使用DAX上在线提供的许多示例,仍然可以创建/计算任何度量值,但是仅使用尺寸属性怎么办?
这是正确的方法吗?如何处理这些?