Ssas SQL OLAP多维数据集和维度

Ssas SQL OLAP多维数据集和维度,ssas,data-warehouse,olap-cube,cube-dimension,Ssas,Data Warehouse,Olap Cube,Cube Dimension,在WindowsServer2008中,我使用SQLServer2005、VisualStudio和SQLServerAnalysisServices创建了一个OLAP多维数据集 该场景是一个典型的销售产品、客户和代理商的商店 多维数据集由事实表tblVendite(销售数据)和基于sql视图的维度组成 注意:我尝试将屏幕截图嵌入此处,但它们将调整大小且无法清除,因此我将其发布在安全站点以查看: 事实表tblVendite(销售)>PK:CdArticolo(IDProduct) 尺寸Pro

在WindowsServer2008中,我使用SQLServer2005、VisualStudio和SQLServerAnalysisServices创建了一个OLAP多维数据集

该场景是一个典型的销售产品、客户和代理商的商店

多维数据集由事实表tblVendite(销售数据)和基于sql视图的维度组成

注意:我尝试将屏幕截图嵌入此处,但它们将调整大小且无法清除,因此我将其发布在安全站点以查看:

  • 事实表tblVendite(销售)>PK:CdArticolo(IDProduct)
  • 尺寸Prodotti(produtcs)
  • 维度日历IO(日历)
  • 维度代理(代理)
  • 维度客户端(客户)
使用日历、客户/代理、产品、品牌等基本过滤器浏览多维数据集。。。一切正常

现在我需要提供一个新功能,如下所示: 将所有公司的“畅销品牌”与每个代理商的销售额进行比较,看看他如何销售这些品牌

所以我做了一个新的表格和相关的视图:
vwMarcheOrd
(畅销品牌)

桌面销售品牌由一个
sp
预先填充,每个品牌包含一条记录(
CdMarca
-
位置
-
描述
按位置排序)

注意:从
vwMarcheOrd
我不能直接链接到事实表,因为PK是
CdMarca
并且它不存在,所以我需要通过
CdMarca
来“桥接”视图产品,并获得
CdArticolo
链接到事实表

品牌
顶级品牌
的维度和属性:

浏览多维数据集和问题

将维度
品牌
(1)添加到行字段中,结果是正确的,但如果我添加
顶级品牌
(2)是错误的,并且许多品牌缺失(但它们存在)

所以我的问题是2:

  • 我对
    顶级品牌
    维度有什么遗漏、错误或误解
  • 如何在行字段中显示顶级品牌的所有记录,即使代理商没有销售该品牌的任何商品(空行)
  • p、 我还尝试仅使用vMarcheOrd创建一个维度,然后创建一个与产品表的引用关系,以桥接CdMarca>CdArticolo>事实表,但结果是相同的

    提前感谢那些能帮助我解决这个问题的人,这些天来一直困扰着我

    ciao luka:)

    在我看来,您的多维数据集上的属性之间没有正确的属性关系

    我看到您使用的是2005年的BIDS,我对它不太熟悉(在2008年帮助会更容易),但您需要做的是设置Prodoti->Brand->top Brand之间的关系


    您可以通过维度名称下方属性上的+符号来实现这一点。

    据我所知,顶级品牌可能会随着时间的推移而改变。这意味着您需要随着时间的推移以某种方式跟踪它。在我的观点中,最简单的方法是将TopBrandKey添加到事实表中,并将TopBrand维度直接连接到事实表中。通过这种方式,可以在事实表中为您完成时间跟踪。随着新记录的出现,您将查找顶级品牌的关键,并将其添加到事实表中。我认为你的方式不可行,因为销售的产品没有顶级品牌(这是两个不同的东西)。

    新视图和产品视图之间的连接是什么?什么是顶级品牌?你如何知道它是顶级品牌?您的图片不可读。@Ali_Abadani我已经更新了信息来回答您的问题。下面Sali的回答可能是正确的,但从您的描述中不清楚什么是“顶级品牌”。一个产品只能在一段规定的时间内成为“顶级”(销售数量最多、收入最多、利润最多),那么你如何处理一月份的顶级品牌与全年的顶级品牌?或者这与您的场景无关?问题已经解决(请看Ali_Abadani)的评论,所以我想说谢谢您的帮助谢谢您的澄清,但我不能在事实表中使用TopBrandKey,在这种场景中,我只能读取数据,并且不会更改任何内容,因为使用了其他数据仓库。如上所述,TopBrandKey是桥vProdotti引用的“关系”。顺便说一句,我在几分钟前发现了这个问题,就是由于从SQL 2000移植而导致的表(顶级品牌)中的数据不正确。因此,在重建表并重新处理多维数据集之后,所有工作最终都会正常进行。