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 是一个标识列。主键是 DocCode 3 名称列。

Microstrategy:如果我们在 Microstrategy 中使用此表,我们将使用 like,[DocCode]是属性,[FirstName]、[lastName] 和 [MiddleName] 是属性 DocCode 的三个限定符。该表的最终结果是具有三个限定符的单个属性。

SSAS: 我将 DocCode 添加为 1 属性,其中 keyColumn 为[DocCode]。[FirstName]、[lastName] 和 [MiddleName] 三列需要作为单独的属性添加。对于所有这些,keyColumn 是相同的,即 [DocCode]。我发现的唯一方法是将 [FirstName]、[lastName] 和 [MiddleName] 拖到属性窗格中,然后将所有 3 个的键列更改为 [DocCode]。我需要一个一个地执行此操作。

如果我在 SSAS 或微观策略概念上犯了错误,请原谅我。

问题:

----------
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] 进行切片。Personnaly,在这种情况下,我更愿意创建一个新的计算字段“FullName”,将 [FirstName]、[lastName] 或 [MiddleName] 连接起来,将其添加为属性(键等于 DocCode)和然后创建此“名称”属性的 3 个属性。

要创建属性,我们需要做的第一件事是将字段 [FirstName]、[lastName] 和 [MiddleName] 移动为属性。然后将每个属性的 AttributeHierarchyEnabled 属性设置为 False。转到维度设计器中的属性关系选项卡。右键单击 FullName,然后单击新建属性关系。然后在创建属性关系窗口中,在相关属性下拉列表中找到名字。单击确定。

对于您的客户端,您希望能够使用 FirstName 属性进行切片和切块,但是在显示 FullName 时,您将能够显示其所有属性。

于 2014-04-27T19:44:26.727 回答
1

我会将 Dimension Key 属性设置为 skDoctorKey (Usage = Key),并将 NameColumn 属性设置为 DocCode。我将此属性命名为 Doctor Code 或类似名称。

然后我会将其他列添加为单独的属性,没有 NameColumn 设置。

在大多数客户端工具中,此设计将允许您访问与名称相关的属性作为维度键属性的属性,例如在 Excel 中右键单击行或列标签单元格并选择在报表中显示属性。

我会让与名称相关的属性可见(默认情况下),但您可以通过设置 AttributeHierarchyVisible = False 来隐藏它们。

我认为 skDoctorKey 没有分析/报告值,因此不需要对客户端工具可见。

于 2014-04-27T23:18:41.223 回答