Sql server 列(成本)已在计算表达式中使用,但未在行集中定义

Sql server 列(成本)已在计算表达式中使用,但未在行集中定义,sql-server,sql-server-2005,ms-access,ms-access-2007,Sql Server,Sql Server 2005,Ms Access,Ms Access 2007,在将子数据表插入查询并尝试通过单击+ Column (Cost) was used in a CALC expression but is not defined in the rowset. 令人困惑的是,数据库中甚至没有一个名为“Cost”的列。虽然有一列以“Cost”开头并在中有空格。将其设置为不带空格的别名并不能解决问题如果列名中有空格,则需要在sql server中将其括起来 [成本]总有一种解决方案不使用子数据表。尽管子数据表工具不像“查找字段”那样普遍地受到厌恶,但它至少与之相似

在将子数据表插入查询并尝试通过单击+

Column (Cost) was used in a CALC expression but is not defined in the rowset.

令人困惑的是,数据库中甚至没有一个名为“Cost”的列。虽然有一列以“Cost”开头并在中有空格。将其设置为不带空格的别名并不能解决问题

如果列名中有空格,则需要在sql server中将其括起来


[成本]

总有一种解决方案不使用子数据表。尽管子数据表工具不像“查找字段”那样普遍地受到厌恶,但它至少与之相似,因为它用直接的表处理来换取一种可能代价高昂的便利。所以我会尝试在没有子数据表的情况下构建它,看看会发生什么

尝试根据子数据表引用的表创建查询,然后改为引用该查询。

不确定原因,但它与其中一个子查询中的排序相关,即使没有被排序为“成本”的列。一旦我删除了排序,它就工作了。

您的标签有点混乱。您使用的是SQL Server还是MS Access?我考虑的是后者——SQL Server中没有“CALC”表达式(标记为CALC)。它是一个Access项目,带有SQL Server 2005后端。子数据表添加在Access中,而不是SQL中。我试过用括号括起来,但它只是说“无效的列名”[Cost With Spaces]”。查询会层叠而下,例如summary->balances->transactions。子数据表是一个查询,包含更多的子数据表,可以正常工作。它是无法工作的顶级查询(聚合查询)。它在Access(MDB)时工作,但在SQL后端(即ADP)Sam中不起作用,您评论说“查询级联…子数据表是一个查询,有更多的子数据表…”不需要使用子数据表;如果您还没有解决这个问题,那么显然下一步就是不使用子数据表。