2017-09-16 1 views
0

내가 내 SQL보기에이 코드를 가지고 레일 이제이 코드를 가지고 :합계 활동 기록은

그러나 나는 모든 예에서 .sum는 하나의 인수를 허용하기 때문에 다음에 어디로 모른다 (http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html#method-i-sum)

UPD :. 지금, 나는

Report.select('date, book_title, SUM(reports.net_sold_count * reports.avg_list_price/10) AS revenue').group(:date, :book_title) 
+0

도울 수 있습니다. –

답변

1

#sum 뭔가를하려고 생각하고를 문서가 오도 된 것입니다. 예, #sum은 하나의 인수 만 허용하지만 그 인수는 열 이름에 해당하는 기호 일 필요는 없으며 해당 인수는 사용 가능한 열을 사용하는 SQL 표현식이 될 수도 있습니다. 특히, #sum의 인수는 루비 문자열이 될 수 있습니다 :

'reports.net_sold_count * reports.avg_list_price/10' 

그래서 당신은 말할 수 :

Report.group(:date, :book_title).sum('reports.net_sold_count * reports.avg_list_price/10') 

당신에게 보이는 해시를 줄 것 같은 :

{ 
    [some_date, some_title] => some_sum, 
    ... 
} 

루비 땅에서 필요에 따라 분리 할 수 ​​있습니다.

+0

개체 배열과 같은 결과가 필요한 경우 어떻게해야합니까? [: : date => some_date, title : = some_title, : sum => some_sum} '(아마도 sql 코드를 실행했을 때의 결과처럼) – user2950593

+0

그러면'map {| (a, b), c와 같은 것을 사용하여 루비의 사소한 비트로 " | {: a => a, : b => b, : c => c}}'. –