列 (Cost) 已在 CALC 表达式中使用,但未在行集中定义
Posted
技术标签:
【中文标题】列 (Cost) 已在 CALC 表达式中使用,但未在行集中定义【英文标题】:Column (Cost) was used in a CALC expression but is not defined in the rowset 【发布时间】:2009-06-22 16:23:08 【问题描述】:在将子数据表插入查询并尝试通过单击 + 来显示它后不断收到此错误
Column (Cost) was used in a CALC expression but is not defined in the rowset.
令人困惑的是,数据库中的任何地方甚至都没有名为“成本”的列。虽然有一列以“成本”开头并有空格。将其设置为不带空格的别名并不能解决问题
【问题讨论】:
您的标签有点混乱。您使用的是 SQL Server 还是 MS Access?我在想后者 - SQL Server 中没有“CALC”表达式(这样标记)。 这是一个 Access 项目,带有 SQL Server 2005 后端 【参考方案1】:不知道为什么,但它与其中一个子查询中的排序有关,即使没有名为“成本”的列正在排序。一旦我删除了排序,它就起作用了。
【讨论】:
【参考方案2】:当你在列名中有空格时,你需要在 sql server 中用括号括起来
[费用]
【讨论】:
子数据表是在 Access 中添加的,而不是在 SQL 中。我试过括号,但它只是说“无效的列名'[带空格的成本]'”【参考方案3】:总是有一个不使用子数据表的解决方案。尽管子数据表工具不像“查找字段”那样被普遍厌恶,但它至少相似之处在于,它用直接的表格处理换取了一种可能代价高昂的便利。所以我会尝试在没有子数据表的情况下构建它,看看会发生什么。
【讨论】:
Sam,您评论说“查询级联下来......子数据表是一个查询,还有更多的子数据表......”永远不需要使用子数据表;如果您还没有解决问题,那么下一步显然是不使用子数据表。【参考方案4】:尝试根据您的子数据表引用的表创建查询,然后改为引用该查询。
【讨论】:
查询级联下来,例如摘要 -> 余额 -> 交易。子数据表是一个查询,具有更多的子数据表并且可以正常工作。它是无法工作的顶层(这是一个聚合查询)。它在 Access (MDB) 时有效,但在 SQL 后端(即 ADP)中无效以上是关于列 (Cost) 已在 CALC 表达式中使用,但未在行集中定义的主要内容,如果未能解决你的问题,请参考以下文章
Python - LibreOffice Calc - 使用正则表达式查找和替换
在 OpenOffice Calc 正则表达式中搜索精确数字数组