获取DataRow中可能的给定值组合

时间:2011-01-12 11:54:32

标签: .net algorithm combinations

<。>在.Net中有没有办法在数据表中找到给定值的匹配组合?

数据表就像

ItemID,名称,数量

1,A,2

2,B,1

3,C,3

4,D,4

5,E,5

需要获得匹配数量列的可能组合。

E.G。如果我通过8

需要DataTable的结果(2 + 1 + 5 = 8,3 + 5 = 8,1,3,4 = 8)

combinationID,Quantity,NoOfItems(combinationID的行数)

1,2,3

1,1,3

1,5,3

2,3,2

2,5,2

3,1,3

3,3,3

3,4,3

2 个答案:

答案 0 :(得分:0)

您可以使用recursive CTE查找所有组合,例如此SO-Question:Getting all possible combinations which obey certain condition with MS SQL

答案 1 :(得分:0)

我从C# algorithm - find least number of objects necessary获得了想法

但仍然无法根据我的要求进行修改。堂妹。在我的情况下,有重复的值,

var list = new[] { 2, 3, 4, 6, 7, 2, 4, 5, 3 };
Array.Sort<int>(list);
var ans = Knapsack(list, 9);

它会抛出一个异常InvalidOperationException(“Sequence不包含任何元素”)

有什么想法来解决这个问题吗?