Problemet du hänvisar till är också känt som knapsäcksproblemet . Det finns en rad algoritmer du kan använda för att lösa detta. Det mest kända är dynamisk programmering, det kräver att vikterna är heltal, så du måste mäta i cent. Ingen av dem är lätt att implementera i t-sql.
Jag hittade faktiskt en länk till någons implementering i sql-servern:http://sqlinthewild.co.za/index.php/2011/02/22/and-now-for-a-completely-inappropriate-use- of-sql-server/
Lägg märke till rubriken, de tycker också att det är en olämplig användning av en databas. Jag rekommenderar att du löser detta på ett annat språk.