강의실/OA


위와 같은 테이블에서 2000년 이후에 입사한 직원들의 숫자를 각 직위별로 집계를 해서 보고 싶을때 유용하게 사용할 수 있는 구문이 바로 TRANSFORM 구문 이네요.


TRANSFORM 구문을 이용하면 다음과 같은 형태의 데이터가 바로 출력 됩니다.


쿼리문


 

TRANSFORM Count(사원상세정보.사번) AS 사번의개수

SELECT 사원상세정보.부서, Year([입사일]) AS 입사년도, Count(사원상세정보.사번) AS 전체

FROM 사원상세정보

WHERE (((Year([입사일]))>=2000))

GROUP BY 사원상세정보.부서, Year([입사일])

ORDER BY 사원상세정보.부서, Year([입사일])

PIVOT 사원상세정보.직위;



출력 결과물


기존에 TRANSFORM 구문을 이용하지 않고 이 출력물을 만들기 위해서 계장,과장,대리,사원 각각의 필드값을 CASE 를 이용해 데이터를 추출해서 사용했었는데...


이렇게 간단한 쿼리만으로 이러한 결과값이 나온다는 것에 대해 깜짝 놀랐네요.^^


 TRANSFORM 구문 사용법은 다음과 같습니다.


 

TRANSFORM aggfunction
selectstatement
PIVOT pivotfield [IN (value1[, value2[, ...]])]




구성 요소

설명

aggfunction

선택한 데이터에서 작동하는 SQL 집계 함수입니다.

selectstatement

SELECT 문입니다.

pivotfield

쿼리 결과 집합에서 열 머리글을 만드는 데 사용할 필드 또는 식입니다.

value1, value2

열 머리글을 만드는 데 사용되는 고정 값입니다.


TRANSFORM 구문은 PIVIOT 과 함께 사용하시면 됩니다.


TRANSFORM 에서 사원의 숫자를 알고 싶으면 사번을 count 하고

PIVOT 에서 열머리 구분을 하고 싶은 필드 값을 설정해 주기만 하면 위와 같은 형태로 데이터가 출력이 됩니다.


하지만 이러한 구문은 MS-ACCESS에 한정이 된다는 사실이 조금 아쉽네요.^^


Oracle과 같이 다른 데이터베이스와 같이 혼용하는 프로그램 작성하시는 분께서는 범용적인 SQL 을 만들어 사용하셔야 할것 같네요.^^



이 장소를 Daum지도에서 확인해보세요.
인천 서구 당하동 1028-2 장원프라자 502호 | 원당컴퓨터학원
도움말 Daum 지도

'강의실 > OA' 카테고리의 다른 글

MS-ACCESS 에서 사용하는 TRANSFORM 구문  (3) 2018.02.14
3 0
  • 집념의불 2018.02.14 16:22 신고    

    잘보고갑니다.
    행복한 연휴되세요 ^^

  • 핑구야 날자 2018.02.15 07:01 신고    

    Acess도 오랜만에 보네요 한동안 이용했었는데 지금은 잘 이용하지 않게 되는군요

  • 버블프라이스 2018.02.18 14:44 신고    

    좀 어려워보이지만 참고하고 갑니다^^
    행복한 명절 연휴 보내시길 바래요 원당컴님