我正在SSAS VS工具中进行多维分析。我有两个表,动物animal_intake。用animal_id
标识动物,使用animal_id
标识animal_intake参考动物。我想要完成的ID旨在创建命名计算,以获取有关摄入日动物年龄的信息。为了计算年龄,我必须在animal_intake命名计算中引用动物的出生日期。基于文档[https://docs.microsoft.com/en-us/sql/analysis-services/multidimensional-models/define-named-calculations-in-a-data-source-view-analysis-services?view=sql-server-2017#creating-named-calculations]中描述的解决方案,我创建了以下查询以进行命名计算
(SELECT [ANIMAL].[birth_date] FROM [ANIMAL] WHERE [ANIMAL].[animal_id] =[animal_id])
只是为了获得动物的出生日期。不幸的是,当我单击“浏览数据”时,VS出现以下错误
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
#
我不明白问题是什么-animal_id
是ANIMAL
表的主键,并且birth_date
字段具有NOT NULL
约束。因此,对于给定的naimal_id
,查询必须有一个准确的结果。
这是我数据库中的简化表。
动物
CREATE TABLE [ANIMAL] (
[animal_id] CHAR(7) PRIMARY KEY,
[birth_date] DATE REFERENCES [DATE]([exact_date]) NOT NULL
);
ANIMAL_INTAKE
CREATE TABLE [ANIMAL_INTAKE] (
[animal_id] CHAR(7) NOT NULL REFERENCES [ANIMAL],
[stay_number] TINYINT NOT NULL,
[intake_date] DATE REFERENCES [DATE]([exact_date]) NOT NULL,
PRIMARY KEY ([animal_id], [stay_number]),
);
答案 0 :(得分:0)
尝试以下操作:
(SELECT [ANIMAL].[birth_date] FROM [ANIMAL] WHERE [ANIMAL].[animal_id] = [ANIMAL_INTAKE].[animal_id])
我假设您在DSV中的表名为ANIMAL_INTAKE,这就是您要进行命名计算的表。