SQL查询,可以在一个查询中执行吗?

时间:2010-11-25 16:13:35

标签: sql stored-procedures

我需要编写一个执行以下操作的查询:

我有两张桌子:

 SalaryRanges: id, beginRange, endRange
 UserInfo: id, salary,...

我想要一个执行以下操作的查询:

给我一​​份SalaryRanges的列表,其中每个薪资范围满足特定范围的人数超过5人。

类似于:

SalaryRange ids:1,4,5,7有5人符合各自的薪资范围。

这可以在一个查询中执行吗?或者您是否需要将查询分解为不同的调用?

1 个答案:

答案 0 :(得分:5)

这只是我的头脑,但我认为它会起作用

SELECT  sr.id
FROM    SalaryRanges AS sr
INNER JOIN  UserInfo AS ui ON ui.Salary >= sr.beginRange AND ui.Salary <= sr.endRange
GROUP BY    sr.id
HAVING count(ui.id) > 5

根据评论

,使用BETWEEN更新版本
SELECT  sr.id
FROM    SalaryRanges AS sr
INNER JOIN  UserInfo AS ui ON ui.Salary BETWEEN sr.beginRange AND sr.endRange
GROUP BY sr.id
HAVING count(ui.id) > 5

两者都应该有效