温馨提示:本文翻译自stackoverflow.com,查看原文请点击:sql server - Primary key not a Measure in cube?
sql-server ssas visual-studio-2013 cube bids

sql server - 主键不是多维数据集中的度量?

发布于 2020-05-03 19:27:57

我是的新手SSAS,所以请多多包涵。

我有两个表:FactTestDimLocation我包括表模式,但在本质上,并FactTest.LocationName为外键DimLocation.LocationNameDimLocation.LocationNameprimary key

CREATE TABLE [dbo].[FactTest](
    [test_date] [date] NULL,
    [DOWNLOAD] [float] NULL,
    [LocationName] [varchar](50) NULL
) ON [PRIMARY]


GO

ALTER TABLE [dbo].[FactTest]  WITH CHECK ADD  CONSTRAINT [FK_FactTest_DimLocation] FOREIGN KEY([LocationName])
REFERENCES [dbo].[DimLocation] ([LocationName])
GO

ALTER TABLE [dbo].[FactTest] CHECK CONSTRAINT [FK_FactTest_DimLocation]
GO

CREATE TABLE [dbo].[DimLocation](
    [LocationId] [int] IDENTITY(1,1) NOT NULL,
    [LocationName] [varchar](50) NOT NULL,
 CONSTRAINT [PK_DimLocation] PRIMARY KEY CLUSTERED 
(
    [LocationName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

DimLocation 看起来像这样:

LocationId      LocationName
1               Houston
2               San Antonio
3               Dallas
4               Austin

FactTest看起来像这样:

test_date       Download      LocationName
1/4/2020        8.56          Houston
1/4/2020        9.43          Dallas
1/5/2020        3.20          Houston

创建cubein时VS 2013,我注意到该列LocationName未作为in 之一包含在内Measures我还具有其他Dimension表,并且主键列都不是“度量”的一部分。 在此处输入图片说明

Measures创建键时不应该使用主键cube吗?如果不是,那我应该如何将事实表链接到暗表?

查看更多

提问者
fdkgfosfskjdlsjdlkfsf
被浏览
18
Piotr 2020-02-14 23:52

这是由于DimLocation中的PK定义不正确引起的。
所有维PK均应为整数,因此LocationId应为您的PK,并且应将其包括在事实表中而不是LocationName中。位置名称应定义为维度属性。
在多维数据集中,唯一的度量是“ [DOWNLOAD] [float]”。

度量的定义:它是任何数字量/值,代表与组织目标保持一致的度量。度量存储在事实表中。