Sql-Server

根據歷史數據連接多維數據集中的表

  • November 3, 2011

所以這可能是錯誤的地方,並且可能看起來很基本,但我是建立立方體的新手,所以請原諒我。

想像一下以下描述的設置:

CREATE TABLE [dbo].[Orders] (
   OrderNumber int,
   OrderDate smalldatetime,
   ProductNumber int,
   UnitPrice money,
   Qty int
)
CREATE TABLE [dbo].[Products] (
   ProductNumber int,
   ProductName varchar(30),
   CreatedDate smalldatetime,
   EndDate smalldatetime NULL
)

INSERT INTO Products VALUES (1,'My Product','1/1/2011','5/5/2011')
INSERT INTO Products VALUES (1,'My New Product','5/6/2011',NULL)
INSERT INTO Orders VALUES (1,'1/3/2011',1,1)
INSERT INTO Orders VALUES (2,'6/6/2011',1,1)

SELECT * FROM Orders o INNER JOIN Products p ON o.ProductNumber = p.ProductNumber AND o.OrderDate BETWEEN p.CreatedDate and p.EndDate

如您所見,我的產品編號被重複使用,我需要能夠在下訂單時查看產品是什麼。使用 SQL 很容易,但是我在嘗試在 SSAS 中建構一個考慮到它的多維數據集時遇到了麻煩。

任何幫助,將不勝感激。

首先,您的查詢看起來不正確,因為您沒有考慮 NULL 結束日期。首先修復這個問題,這樣您就可以看到兩個表的平面視圖。

一旦查詢正常工作,您將使用它作為您的 DSV。在 DSV 編輯器中,將該查詢添加為“命名查詢”。該命名查詢將成為您的多維數據集的源。

從該視圖創建多維數據集後,將您的數量和單價添加為度量。您可以使用 ProductNumber、ProductName、CreatedDate 和 EndDate 作為維度屬性,具體取決於您要查看的內容。重要的部分是您從度量來源的同一個命名查詢建構維度。

**這是重要的部分:**一旦您有了事實和度量設置,請轉到多維數據集編輯視窗上的“維度使用”選項卡。您應該只配置一種關係 - 將其設置為 Fact。

你完成了。日期維度在這裡可能很有用,但這與您的問題無關。

引用自:https://dba.stackexchange.com/questions/7538