在单个结果中从Active记录返回两个Sum列

时间:2015-11-16 01:01:10

标签: ruby-on-rails postgresql activerecord

我在从Rails控制台获取正确输出时遇到一些麻烦,即使生成的SQL似乎是正确的。我不知道自己错过了什么。任何帮助将不胜感激。

Orders.rb #Orders Model

getElementById

Rails 4.1

在控制台中

scope :financials, -> {select(['SUM("orders"."totalCost") as "Cost"', 'sum("orders"."taxCost") as "tax"'])}
scope :fulfillmentstatus, -> {select('"orders"."fulfillmentstatus"')}
scope :byfulfillmentstatus, -> {group('"orders"."fulfillmentstatus"')}

返回以下SQL

Order.fulfillmentstatus.financials.byfulfillmentstatus

结果哈希有

SELECT "orders"."fulfillmentstatus", SUM("orders"."totalCost") as "Cost", sum("orders"."taxCost") as "tax" FROM "orders"  GROUP BY "orders"."fulfillmentstatus"

当我在postgres中对数据库运行SQL查询时,我得到了你想要的三列

履行状况,成本,税收

NEW,999.99,9999.99

是否可以在单个Activerecord结果中返回两个或更多sum,count,avg列/值,或者我误解了什么是活动记录?

1 个答案:

答案 0 :(得分:0)

尝试 Order.pluck(:fulfillmentstatus,:Cost,:Tax) 不确定它是否适用于as(未在模型中指定的列)