3.1) EMPLOYEES Table에서 이름, 급여를 구하여 급여가 많은사람에서 적은사람 순서로 출력하여라.
select first_name, last_name, salary from employees order by salary DESC;
3.2) 10번 부서의 모든 사람들에게 급여의 13%를 보너스로 지불하기로 하였다.
이름, 급여, 보너스 금액, 부서번호를 출력하여라.
select emp.first_name,emp.last_name,emp.salary,emp.salary*0.13 "Bonus",emp.department_id
from employees emp, departments depa
where emp.department_id=10
and emp.department_id = depa.department_id;
3.4) 급여가 $1,500부터 $3,000사이의 사람은 급여의 15%를 회비로 지불하기로 하였다.
이들의 이름, 급여, 회비(-2자리에서 반올림)를 출력하여라.
select first_name, last_name, salary, salary*0.15 "회비"
from employees
where salary between 1500 and 3000;
3.5) 급여가 $2,000이상인 모든 사람은 급여의 15%를 경조비로 내기로 하였다.
이름, 급여, 경조비(소수점 이하 절삭)를 출력하여라.
select first_name, last_name, salary, salary*0.15 "경조비"
from employees
where salary >= 2000;
3.6) 입사일부터 지금까지의 날짜수를 출력하여라.
부서번호, 이름, 입사일, 현재일, 근무일수(소수점 이하 절삭), 근무 년수, 근무 월수을 출력하여라.
select department_id, first_name, last_name, hire_date, sysdate,
round(sysdate-hire_date,0)"근무일수",round((sysdate-hire_date)/365,0)"근무년수",
round((sysdate-hire_date)/12,0)"근무개월수"
from employees;
3.7) 입사일로부터 90일이 지난 후의 날짜를 이름, 입사일과 함께 출력하여라.
select first_name, last_name, hire_date, hire_date+90 "90일지난날"
from employees;
3.8) 입사일로부터 6개월이 지난 후의 날짜를 이름, 입사일, 6개월 후의 날짜, 급여와 함께 출력하라.
select first_name, last_name, hire_date, add_months(hire_date,6) "6개월 지난날", salary
from employees;
3.9) 입사한 달의 근무 일수를 계산하여 부서번호, 이름, 근무일수를 출력하여라.
select department_id, first_name, last_name,
last_day(hire_date)-hire_date "근무일수"
from employees;
3.10) 모든 사원의 입사일로부터 60일이 지난 후의 'MONDAY'는 몇 년, 몇 월, 몇 일인가를 구하여
이름, 입사일, 'MONDAY'를 출력하여라.
select first_name, last_name, hire_date, hire_date+60 "MONDAY"
from employees;
'Dev. > Back-end' 카테고리의 다른 글
20120925 Oracle (2) | 2012.09.25 |
---|---|
Oracle 연습문제 . 데이터입력 (26) | 2012.09.24 |
/*Over(partition by)*/ /*inner query*/ (12) | 2012.09.24 |
120911 오라클 (2) | 2012.09.11 |
상태: 실패 -테스트 실패: ORA-28000: the account is locked (0) | 2012.09.02 |
댓글