2010-08-16 28 views
0

我有一个需要从表中选择行(排队项目)的过程,每行都有一个数量列,我需要选择数量添加到特定倍数的行。多数是大约4,8,10之间的顺序(但理论上可以是任意倍数(奇数或偶数)SQL Server SQL选择:如何选择列的总和在指定倍数内的行?

关于如何选择字段总数为指定倍数的行的任何建议?

+1

您是否想要做Bin包装? http://en.wikipedia.org/wiki/Bin_packing_problem – 2010-08-16 07:18:46

+0

@Damien_The_Unbeliever:感谢您的链接。我怀疑它是一个类似的问题。队列是一个打印队列,我们​​正在打印一张纸上特定数量的物品。我已经想出了一个基本的迭代算法来检查/添加数量的倍数,但是想知道还有更复杂的SQL解决方案......(与Bin例子不同的是,我们可以有任意数量的表单,它只是需要成为x的倍数来填充表单,以减少浪费等,即'斌'可以增长倍数) – 2010-08-16 07:27:37

回答

1

我首先想到的是使用某种MOD功能,我相信,在SQL服务器%符号。因此,标准将是这样的

WHERE MyField % 4 = 0 OR MyField % 8 = 0 

这可能不是那么快,所以另一方式可能是创建一个包含X倍表(其中X是您正在寻找的倍数)的100个值的临时表并加入该表中

+0

谢谢,我在C#中使用这个,我认为解决方案是更多的应用程序,数据库相关,我只是想寻找其他/更加熟练的方式来实施事情。请问这是一个C#的问题..感谢fort tho tho! – 2010-08-16 13:54:45