【问题标题】:SQL Server SQL Select: How do I select rows where sum of a column is within a specified multiple?SQL Server SQL Select:如何选择列总和在指定倍数内的行?
【发布时间】:2010-08-16 07:10:22
【问题描述】:

我有一个需要从表中选择行(排队项目)的过程,每行都有一个数量列,我需要选择数量添加到特定倍数的行。倍数是大约 4、8、10 之间的数量级(但理论上可以是任何倍数。(奇数或偶数)

关于如何选择字段总和为指定倍数的行有什么建议吗?

【问题讨论】:

  • 您是否正在尝试进行装箱? en.wikipedia.org/wiki/Bin_packing_problem
  • @Damien_The_Unbeliever:感谢您的链接。我怀疑它是一个类似类型的问题。队列是一个打印队列,我们​​在其中打印特定数量的项目在一张纸上。我想出了一个基本的迭代算法来检查/添加多个数量,但想知道有一个更复杂的 SQL 解决方案....(与 Bin 示例的不同之处在于我们可以有任意数量的工作表,它只需要是 x 的倍数以填充床单,减少浪费等,即“Bin”可以成倍增长)

标签: sql sql-server sql-server-2008


【解决方案1】:

我的第一个想法是使用某种 MOD 函数,我相信在 SQL Server 中是 % 符号。所以标准应该是这样的

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

它可能不会那么快,所以另一种方法可能是制作一个临时表,其中包含 X 次表的 100 个值(其中 X 是您要查找的倍数)并加入该表

【讨论】:

  • 谢谢,我在 C# 中使用它,我认为解决方案是更多与数据库相关的应用程序,我只是想找到其他/更熟练的方法来实现。将作为一个 C# 问题来问这个问题。。谢谢顶!
猜你喜欢
  • 1970-01-01
  • 2018-02-03
  • 2020-08-01
  • 1970-01-01
  • 2020-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-28
相关资源
最近更新 更多