Document has_many :items
Item belongs_to :document
我需要查找文件,其中items.quantity * items.value_net
的产品总和大于特定值。
我尝试了范围:
scope :items_value_net_gteq, lambda { |value|
joins(:items)
.where('SUM(items.quantity * items.price_net) >= ?', value)
}
但这是错误的。我一定错过了一些明显的东西。
答案 0 :(得分:2)
您正在寻找having
(未经测试):
scope :items_value_net_gteq, ->(value) {
joins(:items).group('documents.id').
having('SUM(items.quantity * items.price_net) >= ?', value)
}
答案 1 :(得分:2)
scope :items_value_net_gteq, lambda do |value|
joins(:items).group("items.document_id")
.having('SUM(items.quantity * items.price_net) >= ?', value)
end