2011-09-08 60 views
0

我只是需要一些帮助来完成把这个SQL:帮助“红宝石fying”这个SQL

SELECT us.name, pt.task, sum(hours) 
    FROM records 
    INNER JOIN project_tasks pt ON records.task_id = pt.id 
    INNER JOIN users us ON records.user_id = us.id 
    GROUP BY user_id, task 

到红宝石SQL与此类似:

test = Record.sum(:hours , 
         :joins => :project_task, 
         :joins => :user, 
         :conditions => {""}) 

香港专业教育学院得到这个远远高于但即时通讯在解决条件时遇到困难。 我得到了上述从SQL转换成这样:

test = Record.select("name, task, sum(hours)").joins(:project_task).joins(:user).group("user_id, task") 

即时通讯新红宝石所以任何帮助将是巨大的

回答

0

旧风格的变体将是:

Record.find(:all, 
      :select => 'name, task, sum(hours)', 
      :joins => 'INNER JOIN project_tasks pt ON records.task_id = pt.id INNER JOIN users us ON records.user_id = us.id', 
      :group => 'user_id, task') 
+0

我想你的代码,将其改为:'record = Effort.find(:all, :select =>“users.full_name,project_tasks.task_name,hours”, :joins => [:user,:project_task], :group = >“user_id,project_tasks.task_name”) – SD1990