如何在rails中的特定条件下将两列的a的和除

时间:2019-06-06 08:50:09

标签: sql ruby ruby-on-rails-3

我想创建一个结果系统。 如何计算一个Semster的Cgpa。

我正在尝试仅显示已搜索其学期的cgpa及其主题详细信息。

该cgpa的计算结果为:Sum(credit*gpa)/Sum(credit)

我已将credit * gpa保存在主题表的列中。

我可以使用

找到正常的cgpa
<small class="text-warning">cgpa = <%= Subject.sum(:cXgpa)/ Subject.sum(:credit) %></small>** But I need to find it for semester searched

表是

t.string "subject_name"
t.string "subject_code"
t.float "credit"
t.float "gpa"
t.float "cXgpa"
t.integer "semester_id"

我尝试过此操作

<small class="text-warning">cgpa = <%=  Subject.pluck('sum(subjects.cXgpa) /    sum(credit)').where(:semester_id=>params[:semester]) %></small>

但是出现此错误

PG::UndefinedColumn: ERROR:  column subjects.cxgpa does not exist

第1行:从“主题”中选择sum(subjects.cXgpa)/ sum(贷方)

1 个答案:

答案 0 :(得分:0)

这应该有效

Subject.where(semester_id: params[:semester]).pluck("sum(cxgpa) / sum(credit)")

我们应该将哈希写为{ key: value }而不是使用=>,并且您在subjects子句中不必使用sum,因为您只需要处理一张表