Проблемът, за който говорите, е известен още като проблем с раницата . Има набор от алгоритми, които можете да използвате, за да разрешите това. Най-известното е динамичното програмиране, то изисква теглата да са цели числа, така че ще трябва да измервате в центове. Нито един от тях не е лесен за внедряване в t-sql.
Всъщност намерих връзка към нечие внедряване в sql сървър:http://sqlinthewild.co.za/index.php/2011/02/22/and-now-for-a-completely-inappropriate-use- на-sql-сървър/
Обърнете внимание на заглавието, те също го намират за неподходящо използване на база данни. Бих препоръчал да разрешите това на различен език.