在员工表(dept 50,60,80)的所有三个部门中,可以找到所有部门所有员工的招聘日期中的哪个月(即JAN或FEB,或JUN等)?
提示:1月是雇员被雇用到50和60及80的部门的月份。
表中的数据可能是这样的
Hiredate Department_id
29-JAN-97 50
03-JAN-90 60
29-JAN-00 80
您要编写的SQL的输出应该产生如下内容:
Month Name
------------------
January
我真的不知道从哪里开始。请帮忙!
答案 0 :(得分:0)
要从hiredate
列中获取月份名称以获取departments
列表,请将 TO_CHAR 与Month format
一起使用。< / p>
请阅读文档以了解有关Format models and datetime format elements.
的更多信息MONTH - 月份名称,填充空格,长度为9个字符。
例如,
SELECT DISTINCT TO_CHAR(hiredate, 'Month') Month_name, department_id dept
FROM employees
WHERE department_id IN (50, 60, 80);
答案 1 :(得分:0)
select mth "Month"
from (
select distinct department_id, to_char(hire_date, 'Month') mth
from employees
where department_id in (50, 60, 80) )
group by mth
having count(1)=3
内部查询在每个部门中选择不同的月份。
现在,您只需要计算这些月份并显示count
= 3行。这是通过外部查询中的group by
和having
来完成的。