Objectives.

  • 전표분석 시 사용할 쿼리 중 자주 쓰는 문법에 대한 설명 

 

Memo.

(1) Select 문

  • 가장 기본적인 쿼리에 해당.
  • 연습자료에 있는 테이블로 설명. 
  • 테이블을 사용하기 전에 먼저 어떤 database를 사용할 것인지 지정해주어야 함 
    : use [database 명]   >>>  F5(실행버튼)

  • database를 지정해 주었으면 import한 데이터를 불러와보자
    : select * from [table 명]     ( 여기서 *는 모든 열을 다 불러오겠다는 의미임 ) 
    cf. sql은 열을 선택적으로 불러 올 수 있음.

 

(2) Where문 

  • 테이블에 조건을 추가할 때 쓰는 기능임. 엑셀로 치면 필터링
  • 여기서 부터 엑셀보다 편리하게 사용할 수 있는 기능을 추가할 수 있음. 
  • Where ~ In 구문 
select * from dbo.연습자료
where 계정과목명 in ( '미지급비용', '선급비용' )
order by 전표일자+전표번호


"구문해석"

where 계정과목명 in ( '미지급비용', '선급비용' )
--> "계정과목명"열에 있는 내용중 미지급비용 또는 선급비용인 자료를 호출

order by 전표일자+전표번호 
--> 오름차순으로 정렬할 건데 "전표일자"열과 "전표번호"열을 단순히 이어붙인 값으로 정렬 
--> 예를 들면 "2021-01-01"과 "001101"이 있으면 "2021-01-01001101" 이렇게 
--> 더존에선 일반적으로 이런식으로 전표번호를 식별함.

  • 이젠 실무적으로 Where ~ in을 이용하여 내가 원하는 전표를 추출하는 쿼리를 연습해보자.
    위에서는 1) "계정과목명"이 "선급비용" 또는 "미지급비용"인 자료를 호출했는데, 이는 그냥 엑셀로 필터걸어서 선택하면 그만임. 만약 여기서 2)  "계정과목명"이 "선급비용" 또는 "미지급비용"이 포함된 전표의 전체 분개를 보고 싶으면? 
    1)과 2)의 차이는 생각보다 간단함. 1)은 차대가 안맞고 2)는 차대가 맞음. 
select * from dbo.연습자료
where 전표일자+전표번호 in ( 
	select distinct(전표일자+전표번호) from dbo.연습자료
	where 계정과목명 in ( '선급비용', '미지급비용') 
	)
order by 전표일자+전표번호
 

" 구문해석 "

where 전표일자+전표번호 in (  ~  ) 
--> "전표일자+전표번호"가 in 다음의 소괄호안에 있는 값에 해당하는 모든 자료 호출

( select distinct(전표일자+전표번호) from dbo.연습자료
where 계정과목명 in ( '선급비용', '미지급비용') 
--> distinct는 중복값제거의 개념임. 
--> 따라서 계정과목명이 선급비용이거나 미지급비용에 해당하는 데이터의 "전표일자+전표번호"를 가져와라
--> 만약 중복된 값이 있으면 제거하고 하나만 가져와라.

  • 또하나 강력한 기능 중 하나는 wildcard 기능임. 
    다음과 같은 상항을 가정해보자. 주로 어떤 이슈를 찾아낼 때 유용한 기능임.
select * from dbo.연습자료
where 전표일자+전표번호 in (
	select distinct(전표일자+전표번호) from dbo.연습자료
	where 계정과목명 like '%이자%' 
    )
order by 전표일자+전표번호


** 구문분석 ** 
select distinct(전표일자+전표번호) from dbo.연습자료
where 계정과목명 like '%이자%' 
--> "계정과목명"이 "이자"라는 단어를 포함하는 고유 "전표일자+전표번호"를 가져와라. 
--> 만약 where 계정과목명 like '%이자' 라고 적용하면 다음과 같은 예가 있을 수 있음 "선급이자", "미수이자" 
--> 만약 where 계정과목명 like '이자%' 라고 적용하면 다음과 같은 예가 있을 수 있음 "이자비용", "이자수익"

이때 이 %를 와일드카드라고 함. '%이%자%' 이런 것도 가능. 
필자는 주로 적요란이나 거래처명에서 이슈를 파악할 때 사용했었음.

 

다음편에 계속...

'코드' 카테고리의 다른 글

Journal entry test - import data(2)  (0) 2023.05.16
Journal entry test - import data(1)  (0) 2023.04.11
SQL - 원천징수되지 않은 이자수익 파악  (0) 2023.01.31