Sql-Server
根據歷史數據連接多維數據集中的表
所以這可能是錯誤的地方,並且可能看起來很基本,但我是建立立方體的新手,所以請原諒我。
想像一下以下描述的設置:
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。
你完成了。日期維度在這裡可能很有用,但這與您的問題無關。