SELECT语句中的Oracle SQL WHEN条件

2ic8powd  于 2022-12-18  发布在  Oracle
关注(0)|答案(1)|浏览(212)

我有下面的select语句(示例),它从表中返回一个和。

Select SUM(Salary) from Users d, MoreData m where
d.Office = 'A' and
m.Active = 'Yes' and
d.id_user = m.id_of_user

这工作得非常好,并为所有位于Office A中并在表MoreData中标记为活动的用户添加列salery。
现在,我只想在这些条件下的SUM(薪金)大于1.000.000欧元时获得结果。否则,结果将为NULL。
提前致谢
我尝试添加CASE WHEN语句,但总是返回ORA-00900。
它必须是SELECT语句。

0tdrvxhp

0tdrvxhp1#

这看起来像一个having子句:

Select SUM(Salary) from Users d, MoreData m where
d.Office = 'A' and
m.Active = 'Yes' and
d.id_user = m.id_of_user
having sum(salary) > 1000000       --> this

不过,我假设您实际上希望获得更多信息,例如 * 哪个用户有这样的薪水 *,因此您必须将该列添加到select列列表中,然后按它分组。

SELECT d.id_user, 
         SUM (salary)
    FROM users d JOIN moredata m ON m.id_of_user = d.id_user
   WHERE     d.office = 'A'
         AND m.active = 'Yes'
GROUP BY d.id_user
  HAVING SUM (salary) > 1000000

相关问题