[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개의 댓글

관련 채용 정보