您尝试执行的查询不包含指定的表达式错误

Posted

技术标签:

【中文标题】您尝试执行的查询不包含指定的表达式错误【英文标题】:You tried to execute a query that does not include the specified expression error 【发布时间】:2014-06-25 20:43:30 【问题描述】:

我有以下查询

SELECT 
   MonthNumber, 
   Sum(PhaseCost) AS PC, Sum(TotalCost) TC,
   PC / (TC-PC) AS PER 
FROM 
   Table1 
JOIN  
   Table2 ON Table1.MonthNumber = Table2.MonthNumber 
GROUP BY  
   MonthNumber

它工作正常并在 MS Access 中返回一条记录,但是当我尝试从 .Net 调用相同的记录时,我收到此错误

您尝试执行的查询不包含指定的表达式 PC/(TC-PC),并且不允许 SUM(PC/(TC_PC))。

发生了什么事?

【问题讨论】:

【参考方案1】:

您不能以这种方式引用PCTC。您必须使用他们的计算来代替他们的别名。

它应该写成:

SELECT MonthNumber, 
Sum(PhaseCost) AS PC, 
Sum(TotalCost) AS TC, 
Sum(PhaseCost)/(Sum(TotalCost)-Sum(PhaseCost)) AS PER 
FROM Table1 Join Table2 ON Table1.MonthNumber = Table2.MonthNumber 
Group By MonthNumber

免责声明:我没有测试此 SQL。

【讨论】:

@Sathish 没问题。乐于助人。

以上是关于您尝试执行的查询不包含指定的表达式错误的主要内容,如果未能解决你的问题,请参考以下文章

我得到:“您尝试执行的查询不包含指定表达式'OrdID'作为聚合函数的一部分。我该如何绕过?

尝试执行不包含指定表达式“StaffDetails.StaffID”的查询作为聚合函数的一部分

Access Query + 您的查询不包含指定表达式“TimeID”作为聚合函数的一部分

访问更新查询:查询不包含指定表达式作为聚合函数的一部分

指定的 LINQ 表达式包含对与不同上下文关联的查询的引用

指定的 LINQ 表达式包含对与 c# 中的不同上下文错误关联的查询的引用