Het probleem waarnaar u verwijst, staat ook bekend als het knapzakprobleem . Er is een reeks algoritmen die u kunt gebruiken om dit op te lossen. De meest bekende is dynamisch programmeren, het vereist dat de gewichten gehele getallen zijn, dus je zou in centen moeten meten. Geen van hen is eenvoudig te implementeren in t-sql.
Ik heb eigenlijk een link gevonden naar iemands implementatie in de sql-server:http://sqlinthewild.co.za/index.php/2011/02/22/and-now-for-a-completely-ongepast-use- of-sql-server/
Let op de titel, ook zij vinden het een ongepast gebruik van een database. Ik raad je aan dit in een andere taal op te lossen.