我想写一个查询来显示所有工作不到10年的员工的员工编号,姓氏,雇用日期和月数。
这就是我所拥有的,但WHERE功能有问题:
SELECT employee_id, last_name, hire_date, MONTHS_BETWEEN(SYSDATE, hire_date) "number of months employed"
FROM employees
WHERE MONTHS_BETWEEN(SYSDATE, hire_date) <= 120;
PS:当我在没有WHERE功能的情况下运行它时,对于“雇用的月数”,我得到292.530207959976105137395459976105137395
请帮忙! :(
答案 0 :(得分:3)
“当我有”WHERE MONTHS_BETWEEN(SYSDATE,hire_date)&lt; = 120;“ 添加并运行它,我会得到
no data found
“
这意味着公司在过去十年中没有聘请任何员工。
“当我删除'WHERE MONTHS_BETWEEN(SYSDATE,hire_date)&lt; = 120;`我将获得表中所有员工的结果 “雇用的月数”,会给我 292.530207959976105137395459976105137395。 “
您正在使用基于规范SCOTT.EMP表的表格,其中所有员工都是在20世纪80年代的某个时候雇用的。
“现在,想找到那些在那里工作的人少于10岁 年。“
您需要修改数据。尝试这样的查询。如果ID以奇数结尾的任何员工的雇用,它将减少大约二十五年:
update employees
set hiredate = add_months(hiredate, 300)
where mod(employee_id,2)=1
/