데이터베이스

23일차//[Oracle] JOIN 과제 2

aesup 2021. 2. 10. 17:48
728x90
--문제1) 사원들의 이름, 부서번호, 부서명을 출력하라
SELECT a.first_name, b.department_id, b.department_name
FROM employees a, departments b
WHERE a.department_id = b.department_id;

--문제2) 30번 부서의 사원들의 이름,직업,부서명을 출력하라
SELECT a.first_name, a.job_id, b.department_id, b.department_name
FROM employees a, departments b
WHERE a.department_id = b.department_id
    and b.department_id = 30;

--문제3) 커미션을 받는 사원의 이름, 직업, 부서번호,부서명을 출력하라    
SELECT a.first_name, a.job_id, b.department_id, b.department_name
FROM employees a, departments b
WHERE a.department_id = b.department_id
    and a.commission_pct is not null;

--문제4) 지역번호2500 에서 근무하는 사원의 이름, 직업,부서번호,부서명을 출
--력하라
SELECT a.first_name, a.job_id, b.department_id, b.department_name, b.location_id
FROM employees a, departments b
WHERE a.department_id = b.department_id
    and b.location_id = 2500;

--문제5) 이름에 A가 들어가는 사원들의 이름과 부서이름을 출력하라
SELECT a.first_name, b.department_name
FROM employees a, departments b
WHERE a.department_id = b.department_id
        and a.first_name LIKE '%A%';

--문제6) 사원이름과 그 사원의 관리자 이름을 출력하라
SELECT a.first_name, b.first_name
FROM employees a, employees b
WHERE a.manager_id = b.employee_id;

--문제7) 사원이름과 부서명과 월급을 출력하는데 월급이 3000 이상인 사원을
--출력하라
SELECT a.first_name, b.department_name,  a.salary 
FROM employees a, departments b
WHERE a.department_id = b.department_id 
    and a.salary >=3000;

--문제8) TJ 이란 사원보다 늦게 입사한 사원의 이름과 입사일을 출력하라
SELECT a.first_name, a.hire_date, b.first_name, b.hire_date
FROM employees a, employees b 
WHERE a.hire_date < b.hire_date
    and a.first_name = 'TJ';

--문제9) 급여가 3000에서 5000사이인 사원의 이름과 소속부서명 출력하라
SELECT a.first_name, b.department_name, a.salary
FROM employees a, departments b 
WHERE a.department_id = b.department_id
    and a.salary BETWEEN 3000 and 5000
    ORDER BY a.salary ASC;  
--문제10) ACCOUNTING 부서 소속 사원의 이름과 입사일 출력하라
SELECT a.first_name, a.hire_date, b.department_name
FROM employees a, departments b 
WHERE a.department_id = b.department_id
    and UPPER(b.department_name) = 'ACCOUNTING';

--문제11) 급여가 3000이하인 사원의 이름과 급여, 근무지
SELECT a.first_name, a.salary, b.location_id
FROM employees a, departments b 
WHERE a.department_id = b.department_id
    and a.salary <= 3000;
728x90