是否可以使用SQL查询查找总和为X的行?

时间:2016-04-20 17:12:46

标签: sql sql-server

我希望标题足够明确。我将通过下面的一个简单示例使其更清晰。只是为了给出一些背景:我在程序中的两个并行方法之间存在差异,应该返回相同的结果(我们将两者都用作控制/安全,只有一个应该是长期的“生产”处理跑)。差异相当于给定表格的特定字段中的X的总和。我正试图找到问题所关注的ID,以便我能够找到它们之间的共同点,从而解决我的问题。现实生活中的表有几千行,所以我认为任何一种暴力测试都不会在这里发挥作用。

假设我有一个 Person 表,其中包含id,名称和“随机数”字段。像这样:

Id   Name     RandomNumber
1    John     5
2    Pedro    7
3    Alice    10
4    Alan     3
5    Cynthia  4
6    Alex     2

假设我想找出所有可能的组合来获得数字11(在我的现实生活中,可能只有一种组合,但是因为我可以分别分析每种组合,所以更好。)所以可能的结果是: 佩德罗+辛西娅 John + Cynthia + Alex

现在无论我是否必须为每个结果使用不同的查询(如果我需要,例如,每个“参数”一个子查询,那么一个有两个子查询,然后一个有三个)或不是。我想要最简单的选择,如果有的话。

根据系统在写这篇文章时提出的一个老问题(我必须说非常有效),这是一个NP完全问题?这对我来说有点吸引人,虽然这不是世界末日,因为我们有一个解决方案,但显然解决问题会更好。

提前致谢

1 个答案:

答案 0 :(得分:0)

没有可以获取此数据的查询。你可以使用Marc B评论中的建议,但实际上你正在研究大量的处理。

解决问题,尝试SQL Profiler。它易于设置并提供许多有用的信息,包括发送到服务器的命令的SQL。您还可以添加过滤器以删除您不关心的查询。