在数据源视图中定义命名计算 (Analysis Services)

命名计算是一个表示为计算列的 SQL 表达式。 该表达式作为表内的列出现并发挥作用。 使用命名计算,您可以扩展数据源视图中现有表或视图的关系架构,而无需修改基础数据源中的表或视图。 例如,从事实数据表的列派生出来的一般计算值可以表示为数据源视图中的单个命名计算,而不是修改基础数据库表或在基础数据库中创建视图。 命名计算还可以用于基于数据源视图替代每个多维数据集中的计算成员。 命名计算在处理期间进行计算,而计算成员则在查询时进行计算。

命名计算通常还用于为维度成员构造用户友好名称。

注意注意

您不能将命名计算添加到命名查询,也不能基于包含命名计算的表创建命名查询。

创建命名计算

当您创建命名计算时,便会指定名称(SQL 表达式)以及可选地指定计算的说明。 SQL 表达式可以引用数据源视图中的其他表。 定义完命名计算之后,便会将命名计算中的表达式发送到数据源的提供程序,然后将表达式作为以下 SQL 语句进行验证,在该语句中,<Expression> 包含定义命名计算的表达式。

SELECT 
   <Table Name in Data Source>.*, 
   <Expression> AS <Column Name> 
FROM 
   <Table Name in Data Source> AS <Table Name in Data Source View>

列的数据类型由表达式返回的标量值的数据类型确定。 如果提供程序没有在表达式中找到任何错误,则将该列添加到表内。

表达式中引用的列不应该被限定,或只能由表名进行限定。 例如,在引用某个表中的 SaleAmount 列时,SaleAmount 或 Sales.SaleAmount 是有效的,而 dbo.Sales.SaleAmount 则会生成错误。

表达式不会自动由括号括住。 因此,如果 SELECT 语句之类的表达式需要使用括号,则必须在**“表达式”**框中键入括号。 例如,以下表达式只有在您键入括号之后才有效。

(SELECT Description FROM Categories WHERE Categories.CategoryID = CategoryID)

删除命名计算

尝试删除命名计算时,系统将提示您删除会使在项目或数据库中定义的对象列表失效。

如何定义、编辑、查看或删除命名计算

若要查看有关如何定义、编辑、查看或删除命名计算的说明,请参阅如何 使用数据源视图设计器在表中添加、查看、修改或删除命名计算 (Analysis Services)