我现在有以下代码:
var test: Rep[Long] = 4234
Model.sellOrder
.filter(_.price <= price)
.sortBy(_.price.asc)
.filter(order => {test -= order.amount; test < 0})我想选择行,直到总金额达到4234。
发布于 2017-01-29 02:42:27
正如其他人在评论中指出的那样,不可能完全在数据库上实施它,因为它需要支持累积总和。但这可以通过使用集合在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})
}https://stackoverflow.com/questions/41651263
复制相似问题