在Windows Server 2008中,使用SQL Server 2005,Visual Studio和SQL Server Analysis Services创建了一个OLAP多维数据集。
该场景是一个典型的商店,包括销售产品,客户和代理商。
多维数据集由事实表tblVendite(销售数据)和基于sql视图的维度构成。
注意:我尝试在此处嵌入屏幕截图,但是它们会调整大小并且不会清除,所以我将它们发布到安全的网站上进行查看:
SCREENSHOT: stucture of the cube
使用基本过滤器浏览多维数据集作为日历,客户/代理,产品,品牌......一切正常
现在我需要提供一个新功能: 比较"顶级品牌"所有公司出售每个代理商,以了解他如何销售这些品牌
所以我做了一个新表和相关的观点:vwMarcheOrd
(顶级品牌)
表最畅销品牌由sp
预先填充,并包含每个品牌的1条记录(CdMarca
- Position
- {{1}按位置排序)
注意:来自Description
我无法直接链接到事实表,因为PK为vwMarcheOrd
并且它不存在所以我需要&# 34;桥"按CdMarca
查看产品并获取CdMarca
以链接事实表
CdArticolo
和Brand
的尺寸和属性:
浏览多维数据集和问题
将尺寸Top Brand
(1)添加到行字段,结果是正确的,但如果我添加Brand
(2)不正确且许多品牌缺失(但他们存在)
所以我的问题是2:
Top Brand
维度缺少或错误或误解了什么?Top Brand
行品牌中的顶级品牌?P.S。我还尝试仅使用vMarcheOrd创建维度,然后使用Product表创建Referenced Relationship以桥接CdMarca> CdArticolo>事实表但结果是相同的
提前感谢谁能真正帮助我解决阻止我这么多天的问题
答案 0 :(得分:0)
在我看来,您的多维数据集上的属性之间没有正确的属性关系。
我看到你正在使用BIDS 2005,我对它并不十分熟悉(在2008年会更容易提供帮助),但你需要做的是设置Prodoti之间的关系 - >品牌 - >顶级品牌
你可以通过尺寸名称旁边的属性上的那些+符号来做到这一点。
答案 1 :(得分:0)
据我了解,看起来顶级品牌可能会随着时间而改变。这意味着您需要以某种方式跟踪它随着时间的推移。在我的观点中,最简单的方法是将TopBrandKey添加到事实表中,并将顶级品牌维度直接加入事实表。这样,在事实表中为您完成了时间跟踪。随着新记录的出现,您将查找顶级品牌的关键字并将其添加到事实表中。我不认为你的方式会起作用,因为销售的产品不会有顶级品牌(这是两件不同的东西)。