Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment obtenir des lignes dont la somme est égale à la valeur donnée

Le problème que vous souhaitez résoudre s'appelle subset sum problème. Malheureusement, il s'agit de NP-complete .

Cela signifie que, que vous utilisiez SQL ou tout autre langage pour le résoudre, vous ne pourrez résoudre que de très petites instances du problème, c'est-à-dire celles avec seulement quelques entrées dans le tableau. Sinon, le temps d'exécution deviendra excessif, car il croît de manière exponentielle avec le nombre de lignes de la table. La raison en est qu'il n'y a essentiellement pas de meilleur moyen de trouver la solution que d'essayer toutes les combinaisons possibles.

Si une solution approximative est acceptable, il existe un algorithme de temps polynomial, qui est décrit sur la page Wikipedia.