-2

従業員テーブルの 3 つの部門すべて (部門 50、60、80) で、すべての部門のすべての従業員の雇用日のどの月 (つまり、1 月、2 月、または 6 月など) を見つけることができますか?

ヒント: 1 月は、従業員が部門 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
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

SQLフィドル

内部クエリは、各部門の異なる月を選択します。これで、これらの月をカウントし、行を = 3 で表示するだけで済みますcount。これはgroup byhaving外側のクエリで実行されます。

于 2015-04-05T08:43:48.650 に答える