我现在有以下代码:
var test: Rep[Long] = 4234
Model.sellOrder
.filter(_.price <= price)
.sortBy(_.price.asc)
.filter(order => {test -= order.amount; test < 0})
我想选择行,直到总金额达到4234.
答案 0 :(得分:0)
正如其他人在评论中指出的那样,不可能完全在数据库上实现它,因为它需要支持累积金额。但是,这可以部分地通过使用集合在JVM上实现最终过滤器而不是在数据库上使用问题中采用的相同命令方法来实现。
var test = 4234
db.run(Model.sellOrder
.filter(_.price <= price)
.sortBy(_.price.asc)
.result) map {
case rows =>
rows.map(x => { test -= x; x -> test })
.takeWhile({ case (_,x) => x > 0})
.map({case (x,_) => x})
}