不同ID上的SSAS聚合

不同ID上的SSAS聚合,ssas,mdx,olap,Ssas,Mdx,Olap,我希望将不同ID值上的默认聚合从SUM更改为SUM。 这是目前的行为 ID Amount 1 $10 1 $10 2 $20 3 $30 3 $30 Sum Total = $90 身份证金额 1 $10 1 $10 2 $20 3 $30 3 $30 总数=$90 默认情况下,我得到的是90美元。我希望在不同的ID上进行求和,得

我希望将不同ID值上的默认聚合从SUM更改为SUM。 这是目前的行为

ID Amount 1 $10 1 $10 2 $20 3 $30 3 $30 Sum Total = $90 身份证金额 1 $10 1 $10 2 $20 3 $30 3 $30 总数=$90
默认情况下,我得到的是90美元。我希望在不同的ID上进行求和,得到60美元的值。如何修改默认聚合行为以实现此结果

将数据设计为多对多关系:创建一个表/视图,其中每个ID有一条记录,并且根据问题中显示的数据(主事实表)创建amount列;创建一个表/视图,其中每个问题中显示的数据记录有一条记录,可能还有另一列,否则,拥有问题中所示的数据将毫无意义)。这将是m2m维度表。然后,创建一个具有m2m维度表id和id列的桥接表/视图

然后创建以下对象:主事实表中的度量值组、同一表的列ID上的维度(如果没有其他列使维度表有意义,那么最好使用ID作为主键的单独维度表)。从m2m维度表中创建维度,并从桥接表中创建仅具有不可见度量值“count”的度量值组。最后,在多维数据集设计器的“维度使用”选项卡上,通过桥接度量值组将m2m维度与主度量值组之间的关系设置为多对多


有关多对多关系的教程,请参见。

不幸的是,我对如何处理表结构感到非常紧张。我解决了我的问题,让每个聚合找到最大金额,然后使用计算进行求和。考虑到我的表的大小,这对性能的影响很小。@user3179523不需要更改表结构,您可以使用此结构创建视图,或者在数据源视图中创建命名查询。啊,我没有想到这一点。我稍后会尝试一下,看看它有多灵活,谢谢。