两个表之间的权力枢纽有许多关系
正如你从图像中看到的,我在这两张表之间有一对多的关系。 但是我想让它成为多对多的。 我使用AssetID作为这些关系的关键。 任何想法如何我可以创build这?
之所以需要它作为一个多对多的即时通讯使用这个powerview和使用列标题作为滑块。 一个例子是,如果我要在tblOperatingSystem滑块中selectWindows 7,我用于tblAssets的滑块只会显示与Windows 7相关的内容,因为我希望能够做相反的事情,并在tblAssets中selectsilde只有操作系统会出现在tblOperatingSystem滑块相关
我已经尝试创build一个只有AssetID的新表,然后将tblAssets和tblOperatingSystem连接到它,但此方法不适用于滑块。
任何想法呢?
如果我正确地理解了这个问题,这就是PowerPivot(和SSAS表格模型)的局限性,在这个模型中,它无法正确build立多对多的关系。 这个关系可以在一个方向上强制执行(如你在操作系统滑动条中看到的那样),但不能在另一个方向上工作。
我过去在PowerPivot / PowerView中设法解决这个问题的方法是创build一个附加的非规范化表,它包含操作系统和资产的所有可能的组合,以及新的标识列(或者OSID
和AssetID
)作为一个关键。 根据需要configurationtblOperatingSystem
和tblAsset
的一对多关系。
其中的关键部分是在这里也包含您的数据列,使用DAX函数来填充值。 然后,您可以使用这个新的非规范化表格作为您的两个滑块(并隐藏客户端的原件)的来源,当select一个时,它们将自动过滤彼此。
现在这个效率不是很高,因为有很多重复,所以如果其他人可以提出另一种方法来实现这一点,我有兴趣听到它自己! 只要小心使用这个与真正的大型数据模型,因为它可以减慢很多事情。
另外 ,我遇到了这篇文章 (其中包含由Marco Russo和Alberto Ferrari 撰写的类似文章的良好链接),但是我还没有尝试过,所以我不确定它与PowerView的效果如何,datePV。
PowerPivot不支持多对多的关系build模,但您可以使用DAX进行模拟。 所有你需要做的就是在你的计量表中列出你的计算表中相关的多对多表格。 例如(从http://gbrueckl.wordpress.com/2012/05/08/resolving-many-to-many-relationships-leveraging-dax-cross-table-filtering/ )给出一个布局,如:
然后在Audience表上写一个度量行数的度量,但是要考虑Targets表上的过滤,你可以这样写:
RowCount_M2M:=CALCULATE( [RowCount], 'Individuals', 'TargetsForIndividuals', 'Targets')
通过列出其他表格,他们的filter上下文将重叠,你得到你正在寻找的join。