-2

在employees表(dept 50, 60, 80)的所有三个部门中可以找到所有部门所有员工的招聘日期的哪个月(即JAN或FEB,或JUN等......)?

提示:一月是员工被雇用到部门 50、60 和 80 的月份。

表中的数据可能是这样的

Hiredate                Department_id
29-JAN-97                   50
03-JAN-90                   60
29-JAN-00                   80

您将编写的 SQL 的输出应产生如下内容:

Month Name
------------------
January 

我真的不知道从哪里开始。请帮忙!

4

2 回答 2

0

要从列表的列中获取MONTH NAME,请使用TO_CHAR和。hiredatedepartmentsMonth format

请阅读文档以了解有关格式模型和日期时间格式元素的更多信息。

MONTH -- 月份名称,用空格填充,长度为 9 个字符。

例如,

SELECT DISTINCT TO_CHAR(hiredate, 'Month') Month_name, department_id dept
   FROM employees
WHERE department_id IN (50, 60, 80);
于 2015-04-05T07:42:20.317 回答
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

SQLFiddle

内部查询在每个部门中选择不同的月份。现在您只需要计算这些月份并显示count= 3 的行。这是通过外部查询group byhaving在外部查询中完成的。

于 2015-04-05T08:43:48.650 回答