컴퓨터활용(컴활) 공부

[데이터베이스] 컴활 1급 실기 문제 풀어보자 (쿼리, 요약, Like)

미스털이 사용자 2024. 2. 17. 22:17
반응형

 

(문제 출처 : https://blog.naver.com/hellstudy/223302615932 )

 

​​​​​액세스 컴활 실기문제를 계속해서 풀어보자.

 

===

 

 

 

===

 

"최근입고일자" 항목 MAX(최대값) 설정

"총입고량" 항목 SUM(합계) 설정

"총주문량" 항목 SUM(합계) 설정

 

 

[만들기] ->[쿼리 디자인] 실행

 

 

 

문제에서 요구하는 테이블 부르기

 

먼저 요약 실행

 

 

MAX이용해서

최근입고일자 항목 만들기

 

그외에

"총입고량", "총주문량"역시

SUM함수 이용해서 만들기

 

 

===

 

검색 조건 설정

 

이경우엔

(A로 시작하는 것) OR (B로 시작하는 것)

으로 분류해서 검색조건으로 넣으면 된다.

 

다음과 같이 설정해주면 된다.

표시 비활성 시켜주는 것 잊지말자

 

===

재고비율 항목 만들기

 

위에 합계로 묶은 항목을 재사용해야 한다.

 

 

방법1)

이럴 땐

SELECT

A.*,

A.총주문량 / A.총입고량 as 재고비율

FROM

(아까 만든 쿼리) A

 

이런 식으로 써줘야 한다.

SELECT
       A.*,
       A.총주문량 / A.총입고량  as 재고비율
FROM
       (
       SELECT 
              씨앗.씨앗명, Max(씨앗입고.[입고일자]) AS 최근입고일자, Sum(씨앗입고.[입고수량]) AS 총입고량, Sum(주문.[수량]) AS 총주문량
       FROM 
              (씨앗 INNER JOIN 주문 ON 씨앗.씨앗코드 = 주문.씨앗코드) INNER JOIN 씨앗입고 ON 씨앗.씨앗코드 = 씨앗입고.씨앗코드
       GROUP BY 
              씨앗.씨앗명, 씨앗.씨앗코드
       HAVING 
              ((씨앗.씨앗코드) Like "A*" Or (씨앗.씨앗코드) Like "B*")
       ) A
 

 

위처럼 SQL을 변경해주면 된다.

 

한편 백분율로 나타내야 하는 것과

문제에서 요구하는데로(%) 나타내야 하기에

다음과 같이 표시한다.

 

최종 디자인.. 이상하다.

왠지 감점요인이 생길 것 같다.

 

 

방법2)

SUB쿼리를 두지않고

(재사용하지않고)

바로 계산하도록 해보겠다.

 

SELECT 
        씨앗.씨앗명, Max(씨앗입고.입고일자) AS 최근입고일자, Sum(씨앗입고.입고수량) AS 총입고량, Sum(주문.수량) AS 총주문량, 
        Sum(주문.[수량])/Sum(씨앗입고.[입고수량]) * 100  AS 재고비율
FROM 
        (씨앗 INNER JOIN 주문 ON 씨앗.씨앗코드 = 주문.씨앗코드) INNER JOIN 씨앗입고 ON 씨앗.씨앗코드 = 씨앗입고.씨앗코드
GROUP BY 
        씨앗.씨앗명, 씨앗.씨앗코드
HAVING 
        ((씨앗.씨앗코드) Like "A*" Or (씨앗.씨앗코드) Like "B*");
 
 

최종 디자인

 

2번째 방법이 좀더 나은 거 같다.

 

 

 

 

반응형