【发布时间】:2021-03-17 03:56:58
【问题描述】:
我被指示进行一个查询,如果该值大于零并且另一列等于零且大于零,则对一列进行计数。我尝试将CASE 用于mysql,但它不起作用。谁能告诉我我错过了什么?这是我尝试过的
SELECT
COUNT(CASE WHEN aci.approved > 0) as approved,
COUNT(CASE WHEN aci.approved == 0 AND aci.pending > 0) as pending
from `admin_case_info` as `aci`
inner join `users_mws` on `users_mws`.`id` = `aci`.`users_mws_id`
inner join `users` on `users`.`id` = `users_mws`.`user_id`
where `users`.`status` not in ('Dumped','Dumped2')
and `aci`.`case_type` = 'INBOUND_SHIPMENT'
我得到的例外是
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') as approved,
COUNT(CASE WHEN aci.approved == 0 AND aci.pending > 0) as pendi' at line 2
【问题讨论】:
-
在没有
ORDER BY的情况下使用LIMIT毫无意义。在整个表中选择COUNT并使用LIMIT 10也是没有意义的。请在您的问题中添加示例数据。 -
哦,对不起。我添加了测试限制。对不起,请忽略限制先生@TimBiegeleisen