데이터베이스 SELECT문 작성..

포그미(pugmi486)
답변채택률95.4%
2012.04.13 13:35
답변 추천하기

Oracle 기준으로 작성하였습니다.

Ms-SQL의 경우 WHERE rownum = 1대신에 SELECT TOP 1으로 바꾸시면 됩니다.

 

1. 직원을 가장 많이 필요로 하는 프로젝트의 이름과 그 위치를 검색하라.
단계1) 조건절 만들기 : 직원을 가장 많이 필요
SELECT PROJNO
FROM  ( SELECT PROJNO,COUNT(*) as CNT
        FROM  WORKS_FOR
        GROUP BY PROJNO
        ORDER BY CNT DESC )
WHERE rownum = 1

 

단계2) 목적절에 조건절 필터링하기 : 프로젝트의 이름과 그 위치
SELECT PROJNAME
      ,LOCATION
FROM  PROJECT  a
     ,PROJ_LOC b
WHERE b.PROJNO = a.PROJNO
AND   a.PROJNO in ( SELECT PROJNO
                      FROM ( SELECT PROJNO,COUNT(*) as CNT
FROM WORKS_FOR
GROUP BY PROJNO
ORDER BY CNT DESC )
                     WHERE rownum = 1 )

 

2. 가장 많은 사람을 부양하는 직원의 이름을 검색하라.
단계1) 조건절 만들기 : 가장 많은 사람을 부양
SELECT EMPNO
FROM  ( SELECT EMPNO, COUNT(*) as CNT
          FROM DEPENDENT
         GROUP BY EMPNO
         ORDER BY CNT DESC )
WHERE rownum = 1

 

단계2) 목적절에 조건절 필터링하기 : 직원의 이름
SELECT EMPNAME
FROM  EMPLOYEE a
WHERE a.EMPNO in ( SELECT EMPNO
                     FROM ( SELECT EMPNO, COUNT(*) as CNT
FROM DEPENDENT
GROUP BY EMPNO
ORDER BY CNT DESC )
                    WHERE rownum = 1 )

 

3. 부품들 중 그 가격이 10,000 원에서 100,000원 사이인 부품들에 대해서 이들을 공급하는 공급자별로 부품가격의 합계를 검색하라.
단계1) 조건절 만들기 : 부품들 중 그 가격이 10,000 원에서 100,000원 사이
SELECT PARTNO,PRICE
  FROM PART
 WHERE PRICE >= 10000 AND PRICE <= 100000

 

단계2) 목적절에 조건절 필터링하기 : 공급자별로 부품가격의 합계
SELECT a.SUPPNAME
      ,SUM(c.PRICE) as PRICE
      ,SUM(c.PRICE*b.QUNTITY) AS APP_PRICE
FROM  SUPPLIER a
     ,SUPPLY   b
     ,PART     c
WHERE c.PARTNO = b.PARTNO
AND   c.PRICE >= 10000 AND c.PRICE <= 100000
AND   b.SUPPNO = a.SUPPNO
GROUP BY a.SUPPNAME

+ Recent posts