1

SSAS およびタイプ 2 SCD データで期待される結果を得ることができません。以下に、私が使用している単純なテーブル、取得している SSAS からの出力、および期待している SSAS からの出力をリストしました。SSAS は、私が望む方法でデータを取得できるはずだと思います。正しく「接続」するのが難しいと思います:)。

私が使用しているテーブル

DimClient
ID (PK)     AltID (Business Key)     Name        Start Date     End Date
1           1                        Client A    01/01/1995     01/31/1995
2           1                        Client ABC  02/01/1995     NULL

FactSales
ID (PK)     ClientID    Sales     SalesDate
1           1           $100      01/15/1995
2           1           $200      02/15/1995
3           1           $300      03/15/1995

さらに、1900 年 1 月 1 日から 2050 年 12 月 31 日までのすべての日付が PK として入力された DimDate テーブルと、月の日、曜日などのさまざまな属性が含まれています。

出力 (現在と予想)

クライアント データを月ごとに表示しようとすると、次のようになります。

Month       Client      Sales
January     Client A    $100
February    Client A    $200
March       Client A    $300

私がこれを見たいと思っている(そして見たい)とき:

Month       Client      Sales
January     Client A    $100
February    Client ABC  $200
March       Client ABC  $300

2 月と 3 月にクライアント A がクライアント ABC に変更されたことを SSAS キューブが認識しないのはなぜですか?

うまくいけば、私のキューブが現在どのように接続されているかについての洞察を提供するために:

-FactSales ClientID は DimClient AltID
にリンクされています -FactSales SalesDate は DimDate PK フィールドにリンクされています

DimClient を DimDate にリンクできませんでした。

入力していただきありがとうございます。私の問題を解決してください。

4

1 に答える 1

1

FactSales と DimClient をリンクするには、別のキーを使用する必要があります。

DimClient の ID と後述の新しいキーです。

FactSales (ClientSCD としましょう) に別のキーを追加し、次のように ETL ステージにマップします。

update f set f.ClientSCD = isnull(c.ID,0)
/* if you have default NONE member with ID = 0 */
FactSales f
left join DimClient c
on f.ClientID = c.AltID
and f.SalesDate between c.[Start Date] and isnull(c.[End Date],'12/31/9999')

キューブで DimClient.ID と FactSales.ClientSCD をリンクとして使用します。

于 2015-01-12T08:06:42.643 に答える