在SSAS多维数据集中,如何为非时间维度创建聚合为LastChild的度量?
源数据在任何给定日期都有相同业务记录的许多版本.时间维度的粒度为DATE,而不是秒和毫秒.
事实记录具有时间戳和增量(标识)主键.实际上,我想要的是将度量计算为给定日期所有编辑的最后一个值.
到目前为止,我看到的选项分为两类:
要么
是否有解决这个问题的最佳位置或替代技术?
数据的自然层次结构是:
不,你绝对不能创建没有时间维度的latChild属性:

您可以做的是在DSV上创建一个查询,为您提供最后一个子值,并使用它来创建一个度量值组.例:
脚本:
create table dim(
id int not null primary key,
name varchar(50))
insert into dim values (1,'one'),(2,'two')
create table fact(
id int not null primary key,
dimId int not null,
value numeric (12,3),
constraint fk_fact_dim foreign key(dimId) references dim(id))
insert into fact values (1,1,5)
insert into fact values (2,1,3)
insert into fact values (3,2,10)
insert into fact values (4,2,20)
Run Code Online (Sandbox Code Playgroud)
非常简单的脚本,可以创建一个暗淡的事实表.这是一个简单的选择,在我认为你想要的结果之后,所以3和20将是基于Dimension ID的最后一个值:

构建非常简单,只需右键单击您的DSV并添加一个新的命名查询,并通知查询创建您的最后一个值.在我的情况是:
select dimId,
(select top 1 value from fact where dimId=F.dimId order by id desc) as lastValue
from fact F
group by dimId
Run Code Online (Sandbox Code Playgroud)
创建逻辑主键并将其链接到维度表:

在您的多维数据集上,右键单击任何空白区域,选择"显示所有表"并添加新表.
在您的多维数据集上创建一个新的度量为"无聚合",因为您已经聚合了您的查询:

结果:
