【发布时间】:2021-11-03 12:01:40
【问题描述】:
每个人。所以我无法进行此查询。
我有这个代码:
obj = object.select("COALESCE(sum(stock.quantity), 0) as cnt")
然后它返回
obj.first.cnt
# 0
我想用
过滤计数object.select("COALESCE(sum(stock.quantity), 0) as cnt").where(cnt: 0)
我无法让它工作。它返回一个
<#Object::ActiveRecord_AssociationRelation:0x3fe455b3ad5c>
【问题讨论】:
-
count是 SQL 中的内置函数。使用其他名称,例如as stock_quantity。 -
@max 编辑了代码。我的问题仍然存在。别名在 where 子句中似乎不起作用。
-
你说它不起作用,你能分享它是如何失败的吗?它会抛出错误吗?它会返回错误的数据吗?预期的输出是多少?当前输出是多少?
-
@thesecretmaster 是的,所以当我执行
object.select("COALESCE(sum(stock.quantity), 0) as cnt").first.cnt时它返回 0 但是当我添加object.select("COALESCE(sum(stock.quantity), 0) as cnt").where(cnt: 0)时它不会返回计数等于 0 的对象。
标签: ruby-on-rails ruby activerecord