SQL 找不到列

SQL Column Not Found

我正在尝试构建一个 SQL 查询来交叉检查几列。 我的问题是 calcontvalue 列。 查询工作正常,直到我想包含一个包含它的 Where 子句 AND calcontvalue = job.contvalue

SELECT 
job.accountno, 
job.groupno, 
job.contvalue, 
job.z1total, 
job.z2equip, 
job.z3freight, 
job.z4pack, 
job.z5ancil, 
job.z6roy, 
job.zrpay, 
job.z7paid, 
job.z8invtype,
IIF(job.z8invtype <> 0, job.z2equip+job.z5ancil, 
IIF(job.z8invtype <> 1, job.z2equip+job.z3freight+job.z4pack+job.z5ancil, 0)) AS calcontvalue, 
group.groupno, 
group.grouptype, 
group.title  FROM job

LEFT JOIN group  
ON job.groupno = group.groupno 
WHERE grouptype = 'J' AND calcontvalue = job.contvalue

我遇到了这个错误:

SQL:Column 'CALCONTVALUE' is not found.

不确定接下来要尝试什么。

您不能在 WHERE 中使用别名,请使用完整表达式:

SELECT 
  job.accountno, 
  job.groupno, 
  job.contvalue, 
  job.z1total, 
  job.z2equip, 
  job.z3freight, 
  job.z4pack, 
  job.z5ancil, 
  job.z6roy, 
  job.zrpay, 
  job.z7paid, 
  job.z8invtype,
  IIF(job.z8invtype <> 0, job.z2equip+job.z5ancil, 
  IIF(job.z8invtype <> 1, job.z2equip+job.z3freight+job.z4pack+job.z5ancil, 0)) AS calcontvalue, 
  group.groupno, 
  group.grouptype, 
  group.title  
FROM job
LEFT JOIN group  
  ON job.groupno = group.groupno 
WHERE grouptype = 'J' 
  AND IIF(job.z8invtype <> 0, job.z2equip+job.z5ancil, 
      IIF(job.z8invtype <> 1, job.z2equip+job.z3freight+job.z4pack+job.z5ancil, 0)) = job.contvalue

同时命名 table group 是不好的做法,因为 GROUP 是关键字 GROUP BY