7day
-- 7일차 --(9) 10번 부서중에서 30번 부서에는 없는 업무를 하는 사원의 사원번호, 업무, 이름, 부서명, 입사일, 지역을 출력하라. SELECT EMPNO, JOB, ENAME, dname, hiredate, loc FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO WHERE E.DEPTNO = 10 AND JOB !=ALL (SELECT JOB FROM EMP WHERE DEPTNO=30); -- not in 도 가능 --(10) 10번 부서와 같은 일을 하는 사원의 사원번호, 업무, 이름, 부서번호, 부서명, 지역, 급여를 급여가 많은 순으로 출력하라. select empno, job, ename, e.deptno, dname, sal FROM EMP E J..
문제3 조인 & 서브쿼리
--(1) EMP와 DEPT TABLE을 JOIN하여 부서번호, 부서명, 이름, 급여를 출력하라. select e.deptno 부서번호,d.dname 부서명,e.ename 이름,e.sal 급여 from dept d,emp e where d.deptno = e.deptno; --(2) 이름이 'ALLEN'인 사원의 부서명을 출력하라. select e.ename 사원이름,d.dname 부서명 from emp e join dept d on e.deptno = d.deptno where e.ename = 'ALLEN'; --(3) DEPT Table에 있는 모든 부서를 출력하고, EMP Table에 있는 DATA와 JOIN하여 -- 모든 사원의 이름, 부서번호, 부..
5day
-- 5일차 --(7) 입사일부터 지금까지의 날짜수를 출력하라. -- 부서 번호, 이름, 입사일, 현재일, 근무일수(소수점 이하 절삭), -- 근무년수(반올림),근무월수(30일 기준,반올림), 근무주수(반올림)를 출력하라. SELECT DEPTNO, ENAME, HIREDATE, SYSDATE, TRUNC(SYSDATE - HIREDATE) 근무일수, ROUND((SYSDATE-HIREDATE)/365) 근무년수, ROUND((SYSDATE-HIREDATE)/30) 근무월수, ROUND((SYSDATE-HIREDATE)/7) 근무주수 FROM EMP; --(5) 급여가 $1,500 부터 $3,000 사이의 사람은 급여의 15%를 회비로 지불하기로 하였다. -- 이를 이름, 급여, 회비(-2자리에서 반올림..
문제2 (function)
--(1) EMP Table에서 이름, 급여, 커미션 금액, 총액(sal+comm)을 구하여 총액이 -- 많은 순서로 출력하라. 단, 커미션이 NULL인 사람은 제외한다. select ename 이름,sal 급여,comm "커미션 금액",sal+nvl(comm,0) 총액 from emp where comm is not null order by 4 desc; --(2) 10번 부서의 모든 사람들에게 급여의 13%를 보너스로 지불하기로 하였다. -- 이름, 급여, 보너스 금액, 부서 번호를 출력하라. select ename 이름,sal 급여,(sal*0.13) "보너스 금액",deptno "부서 번호" from emp where deptno = 10; --(3) 30번 부서의..
3day
-- 3일차 hr 계정 SELECT * FROM TAB; -- 해당 스키마에서 접근할 수 있는 테이블 리스트 DESC EMPLOYEES; SELECT * FROM EMPLOYEES WHERE LOWER(LAST_NAME) LIKE '%king%'; SELECT regexp_replace( REGEXP_REPLACE(PHONE_NUMBER, '(\d{3})\.(\d{2,3})\.([0-9]{4})', '(\1) \2-\3'), '\.', '-'), phone_number FROM EMPLOYEES; SELECT FIRST_NAME, JOB_ID, REGEXP_SUBSTR(JOB_ID,'(.+)(_)([A-Z]+)',1, 1,'i', 3) FROM EMPLOYEES; SELECT FIRST_NAME, JOB..