【问题标题】:Getting unknown column error , where-ing a column from a subquery result [duplicate]获取未知列错误,从子查询结果中获取列[重复]
【发布时间】:2016-10-28 23:30:37
【问题描述】:
SELECT AID,DESCRIPTION,
IFNULL((SELECT SUM(DEBIT) FROM `GL_POSTED_TRANSACTION` WHERE AID = account.AID),0) AS PREV_DEBIT,
IFNULL((SELECT SUM(DEBIT) FROM `GL_POSTED_TRANSACTION` WHERE AID = account.AID),0) AS DEBIT 
FROM GL_ACCOUNT account 
WHERE CLASSID = 1 AND SUBCLASSID = 3
ORDER BY DESCRIPTION;

上面的查询结果:

但是当我添加 AND DEBIT > 0 时,我收到一个错误,提示未知列 DEBIT。

我做错了什么?谁能解释一下。

【问题讨论】:

  • 这个问题我该怎么办?
  • 不太确定...你净丢分了吗?我从未保留过多次被否决的问题。

标签: mysql sql


【解决方案1】:

HAVING 子句中添加该条件,而不是WHERE,例如;)

SELECT AID,DESCRIPTION,
IFNULL((SELECT SUM(DEBIT) FROM `GL_POSTED_TRANSACTION` WHERE AID = account.AID),0) AS PREV_DEBIT,
IFNULL((SELECT SUM(DEBIT) FROM `GL_POSTED_TRANSACTION` WHERE AID = account.AID),0) AS DEBIT 
FROM GL_ACCOUNT account 
WHERE CLASSID = 1 AND SUBCLASSID = 3
HAVING DEBIT > 0
ORDER BY DESCRIPTION;

【讨论】:

  • 或者您可以将显式条件放在WHERE 子句中。这不适用于具有GROUP BY 的查询,在这种情况下HAVING 具有不同的应用程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-15
  • 2011-07-08
  • 2014-08-25
  • 1970-01-01
  • 2023-03-25
相关资源
最近更新 更多