0

ディメンション テーブル構造の例を以下に示します。

CREATE TABLE [dbo].[DimDoctor]
(
    [skDoctorKey] [int] IDENTITY(1,1) NOT NULL,
    [DocCode] [char](9) NOT NULL,
    [FirstName] [varchar](30) NULL,
    [lastName] [varchar](30) NULL,
    [MiddleName] [varchar](30) NULL
)

テーブルについて: ここで、skDoctorKey は ID 列です。主キーは DocCode 3 name 列です。

Microstrategy : Microstrategy でこのテーブルを使用している場合、[DocCode]は ATTRIBUTE であり、[FirstName]、[lastName]、および [MiddleName] は属性 DocCode の 3 つの修飾子です。このテーブルの最終結果は、3 つの修飾子を持つ単一の属性です。

SSAS: DocCode を 1 つの属性として追加し、keyColumn を[DocCode]として追加しました。[FirstName]、[lastName]、および [MiddleName] の 3 つの列を個別の属性として追加する必要があります。それらのすべてについて、keyColumn は同じ [DocCode] です。私が見つけた唯一の方法は、[FirstName]、[lastName]、および [MiddleName] を属性ペインにドラッグし、3 つすべてのキー列を [DocCode] に変更することでした。これを 1 つずつ行う必要があります。

SSAS や Microstrategy のコンセプトに誤りがあった場合は、ご容赦ください。

質問:

----------
In SSAS, is this the right way of adding multiple attributes with same key?, 
Or can we associate [FirstName],[lastName] and [MiddleName] 
with the 1st attribute DocCode in any better way?
----------
4

2 に答える 2

1

あなたの質問に対する基本的な答えは「はい」です。

しかし、あなたのエンド ユーザーが [FirstName]、[lastName]、または [MiddleName] でスライスしたいと思っているかどうかはわかりません。個人的には、このような状況では、[FirstName]、[lastName]、または [MiddleName] を連結して新しい計算フィールド「FullName」を作成し、これを属性として追加して (キーは DocCode に等しい)、次に、この「名前」属性の 3 つのプロパティを作成します。

プロパティを作成するには、最初にフィールド [FirstName]、[lastName]、および [MiddleName] を属性として移動する必要があります。次に、各属性の AttributeHierarchyEnabled プロパティを False に設定します。ディメンション デザイナーの [属性リレーションシップ] タブに移動します。FullName を右クリックし、[新しい属性関係] をクリックします。次に、[属性リレーションシップの作成] ウィンドウで、[関連属性] ドロップダウン リストから FirstName を見つけます。[OK] をクリックします。

クライアントでは、FirstName プロパティを細かく分けて表示できるようにする必要がありますが、FullName を表示すると、そのすべてのプロパティを表示できます。

于 2014-04-27T19:44:26.727 に答える