我在表格中有30条记录,其中包含“框号”和“重量”列。 我必须在30个盒子中找到20个盒子,其重量总和最接近1000千克。
答案 0 :(得分:5)
我建议你阅读Knapsack problem
答案 1 :(得分:2)
SQL Server:
select TOP 20 box_number
from t_boxes
group by box_number
order by ABS(SUM(box_weight) - 1000) ASC
编辑: 如果我误解了你的问题,你真的想解决背包问题。 这是您在SQL中应该做的事情,但是您可以阅读this文章的名称非常合适:现在完全不恰当地使用SQL Server 。