我的班级现在正在使用MS SQL-Server,我们正在玩弄查询。我被困在其中一个上面。 问题是:只向那些奖金中的部分薪水超过10,000美元的调查人员显示所要求的信息。按结尾名称的降序排列结果。
这是我到目前为止的代码:
SELECT Funding.PIN, Fname, Lname, SUM (([%Salary]/100)*Salary) AS TotalSalary
FROM Funding, Investigator
WHERE Funding.PIN = Investigator.PIN
AND 10000 < (SELECT SUM (([%Salary]/100)*Salary)
FROM Funding, Investigator)
GROUP BY Funding.PIN, Fname, Lname
ORDER BY Lname DESC;
每当我运行它时,即使它们低于10,000美元,它也会显示所有调查人员及其工资。任何人如何正确执行这个?
答案 0 :(得分:3)
使用HAVING
子句代替WHERE
尝试这样的事情
SELECT Funding.PIN, Fname, Lname, SUM (([%Salary]/100)*Salary) AS TotalSalary
FROM Funding
INNER JOIN Investigator
WHERE Funding.PIN = Investigator.PIN
GROUP BY Funding.PIN, Fname, Lname
having SUM (([%Salary]/100)*Salary)> 10000
ORDER BY Lname DESC;