데이터베이스/Oracle SQL

오라클 SQL과 PL/SQL ( JOIN 연습문제 - 2 )

동띠기 2021. 8. 20. 00:04
728x90

1. customer 테이블과 gift테이블을 join하여 고객이 자기 포인트보다 낮은 포인트의 상품 중 한 가지를 선택할 수 있다고 할 때 notebook을 선택할 수 있는 고객명과 포인트, 상품명을 출력하세요.

SELECT C.GNAME, C.POINT, G.GNAME
FROM CUSTOMER C, GIFT G
WHERE C.POINT >= G.G_START
AND G.GNAME = 'Notebook'

 

2. PROFESSOR 테이블에서 교수의 번호, 교수 이름, 입사일, 자신보다 입사일 빠른 사람 인원수를 출력하세요.
단 자신보다 입사일이 빠른 사람 수를 오름차순으로 출력하세요.

 

SELECT P1.PROFNO, P1.NAME, TO_CHAR(P1.HIREDATE, 'YYYY/MM/DD') HIREDATE, COUNT(NVL2(P2.PROFNO, P1.PROFNO, NULL)) COUNT
FROM PROFESSOR P1, PROFESSOR P2
WHERE P1.HIREDATE > P2.HIREDATE(+)
GROUP BY P1.PROFNO, P1.NAME, P1.HIREDATE
ORDER BY COUNT ASC

 

3. EMP 테이블에서 사원번호, 사원이름, 입사일, 자신보다 먼저 입사한 사람 인원수를 출력하세요.

SELECT E1.EMPNO, E1.ENAME, TO_CHAR(E1.HIREDATE, 'YY/MM/DD') AS HIREDATE, COUNT(NVL2(E2.EMPNO, E1.EMPNO, NULL)) COUNT
FROM EMP E1, EMP E2
WHERE E1.HIREDATE > E2.HIREDATE(+)
GROUP BY E1.EMPNO, E1.ENAME, E1.HIREDATE
ORDER BY COUNT ASC;

728x90