我正在Rails控制檯中工作。我想在兩個不同的表中選擇同一個命名列的SUM。從Rails中的多個表中選擇求和結果
這裏是我的ActiveRecord的代碼:
Computer.joins(:services, :repairs)
.select("computers.id, SUM(services.cost) as SCOST, SUM(repairs.cost) as RCOST")
.group("computers.id")
這種運作良好,並返回以下正確的SQL:
`SELECT computers.id, SUM(services.cost) as SCOST, SUM(repairs.cost) as RCOST
FROM "computers" INNER JOIN "services" ON "services"."computer_id" = "computers"."id"
INNER JOIN "repairs" ON "repairs"."computer_id" = "computers"."id"
GROUP BY computers.id `
但它給出了Rails的控制檯以下結果:
=> [#<Computer id: 36>, #<Computer id: 32>]
我不應該能夠訪問我的SUM值嗎?我在postgres中運行了上面的SQL查詢,並給出了所需的輸出。
任何幫助,將不勝感激。
謝謝。
你應該仍然可以訪問總和。我認爲AR只顯示返回列名及其值的列表。如果您將該查詢分配給'computers',請嘗試'computers.first.SCOST' – jvnill 2013-03-15 07:32:22
我得到NoMethodError:未定義的方法'SCOST' – Marklar 2013-03-15 07:37:44
我打算建議下載別名,但有人已經回答了這個問題。你可以試試嗎? – jvnill 2013-03-15 07:44:54