[SQL] 테이블 4개 join하여 특정 기준 데이터 추출하기

개-발뚜-발·2023년 7월 6일
0

쿼리

목록 보기
1/7

업무 요청

중소기업 가입자 기준으로
업체명 / 사업자번호 / 매출액(22년) / 종업원수 DB추출

일단 홈페이지 관리자화면에서 기업의 모든 정보를 볼 수 있는 곳에 가서
조회를 해보니 기업정보와 년도별 매출액, 종업원수가 나왔다.
콘솔에 뜬 정보 조회 쿼리를 가지고 만들어 볼 예정.

필요 테이블

CMPNY_INFO - 회사 각종정보
CMPNY_MBERINFO - 공통 회원정보
CMPNY_EMPLY - 회사 종업원 정보
CMPNY_SELNG - 회사 매출액 정보

필요 조건

  1. "중소기업"이어야 할것.
  2. 2022년의 매출액이 나와야 할 것.
  3. 총 종업원의 수
  4. 중복값 X

4개의 테이블을 사업자등록번호(key)를 기준으로 join한다.

쿼리문

SELECT 
	  A.CMPNY_NM AS 업체명
	, A.SA_NUMBER AS 사업자번호
	, D.SELNG_YY AS 매출년도
	, D.SELNG_AM AS 매출액()
	, D.SELNG_AM_DOLLAR AS 매출액(달러)
	, SUM(C.EMPLY_CO) AS 종업원수
FROM CMPNY_INFO A
JOIN CMPNY_MBERINFO B
  ON A.SA_NUMBER = B.SA_NUMBER
JOIN CMPNY_EMPLY C 
  ON B.SA_NUMBER = C.SA_NUMBER 
JOIN CMPNY_SELNG D
  ON C.SA_NUMBER = D.SA_NUMBER 
WHERE 1=1
AND B.USER_CODE = '10000257' -- user의 코드가 중소기업 코드인것만
AND B.SYS_CODE = '10000254' -- system의 코드가 탈퇴, 휴면계정이 아닌 일반계정일때만.
AND D.SELNG_YY = '2022' -- 2022년도
GROUP BY A.CMPNY_NM, A.SA_NUMBER, D.SELNG_YY, D.SELNG_AM, D.SELNG_AM_DOLLAR;

group by문을 주지 않으면 값이 3개씩 출력이 되어버리기 때문에,
group by문을 주어서 같은 값 끼리 그룹을 주었다.
select절에 있는 컬럼과 group by에 있는 컬럼이 같아야 에러가 나지 않는다.
sum은 group by와 같은 집계함수이기 때문에 쓰지않아도 된다.

profile
관심O 댓글O 감놔라배놔라O 가르쳐주는거O 한가할때올립니다

0개의 댓글