Mysql 按子模型属性的乘积之和分组
我需要查找其Mysql 按子模型属性的乘积之和分组,mysql,ruby-on-rails,scope,Mysql,Ruby On Rails,Scope,我需要查找其items.quantity*items.value\u net的乘积之和大于某个值的文档 我试过范围: Document has_many :items Item belongs_to :document 但这是错误的。我一定错过了一些明显的东西。您正在寻找的具有(未测试): 像魅力一样工作,+1并接受(10秒的差异,但仍然是第一个回答)非常感谢!投了赞成票,但必须接受@BroiState的回答,-他是“第一”:D scope :items_value_net_gteq, la
items.quantity*items.value\u net
的乘积之和大于某个值的文档
我试过范围:
Document has_many :items
Item belongs_to :document
但这是错误的。我一定错过了一些明显的东西。您正在寻找的
具有
(未测试):
像魅力一样工作,+1并接受(10秒的差异,但仍然是第一个回答)非常感谢!投了赞成票,但必须接受@BroiState的回答,-他是“第一”:D
scope :items_value_net_gteq, lambda { |value|
joins(:items)
.where('SUM(items.quantity * items.price_net) >= ?', value)
}
scope :items_value_net_gteq, ->(value) {
joins(:items).group('documents.id').
having('SUM(items.quantity * items.price_net) >= ?', value)
}
scope :items_value_net_gteq, lambda do |value|
joins(:items).group("items.document_id")
.having('SUM(items.quantity * items.price_net) >= ?', value)
end