嗨我在DB中有两个表。第一个表格如下。
表名 -
t_hcsy_details
模型中的类名 -
class THcsyDetails < ActiveRecord::Base
end
表格中的值如下所示。
HCSY_Details_ID HCSY_ID HCSY_Fund_Type_ID Amount
1 2 1 1125
2 2 2 390
3 2 3 285
4 2 4 100
5 2 5 60
6 2 6 40
我的第二张表如下。
表名:
t_hcsy_fund_type_master
模型中的类:
class THcsyFundTypeMaster < ActiveRecord::Base
end
表值如下。
HCSY_Fund_Type_ID Fund_Type_Code Fund_Type_Name Amount
1 1 woods 1125
2 2 Burning 390
3 3 goods 285
4 4 brahmin 100
5 5 swd 60
6 6 Photo 40
我只知道第一个表的HCSY_ID值(即-2)。但我需要第二个表中的Fund_Type_Name和Amount。你可以看到一个HCSY_ID有6个不同的记录。但是我需要所有的Fund_Type_Name和一个HCSY_ID的金额。请帮我解决这个问题,为上面显示的两个类创建对象。请帮助我。
答案 0 :(得分:2)
您尚未指定任何关系设置,因此在两个查询中将其拆分会更容易:
# you already have hcsy_id
fund_type_ids = THcsyDetails.where(hcsy_id: hcsy_id).pluck(:hcsy_fund_type_id)
fund_types = THcsyFundTypeMaster.where(id: fund_type_ids)
fund_types.group(:fund_type_name).sum(:amount)
如果您设置了正确的关系,上面的内容将简化为:
THcsyDetails.
joins(association_name). # THcsyFundTypeMaster
where(hcsy_id: hcsy_id).
group("#{t = THcsyFundTypeMaster.table_name}.fund_type_name").
sum("#{t}.amount")