[DB] SQL문의 활용과 중요성
예전 은행해서 근무하던 작은형 왈, "SQL문의 작성 능력에 따라 연봉이 달라진다."
당시 저는 고작 INSERT, DELETE, UPDATE문 정도만 할 줄 알았던 시기라, 그냥 그러려니 했습니다.
요즘은 DB를 가지고 코딩을 많이 하다 보니, 그 말을 많이 실감합니다.
1. VBA 초보 시절
DB에서 불러온 데이타를, 배열로 받아 루프를 돌리면서
문자열 함수를 이용해서 가공한 다음 엑셀 시트에 뿌려 줌
나름데로 뿌듯했음
2. 현재
데이터를 SQL문으로 가공해서 바로 엑셀에 뿌려줌
코드도 간결하고, 결과물 출력 수정도 쉽고, 속도도 빠르고.
3. 샘플 코드 (VB.NET) = 스샷은 아래에
Dim strSQL As String = "SELECT " & "CONCAT('G-', Repeat('0', 6- LENGTH(G_SER)), G_SER) AS SER, " & " G_GUIDE As GUIDE, COMPANY, G_GUEST As GUEST, " & "CONCAT(DATE_FORMAT(G_TOFF_DATE, '%b-%d'), ' (', G_WEEK_DAY, ')') AS TOFF_DATE, " & "G.GC AS GC, G_A_TIME AS ATIME, G_HOLES AS HOLES, G_PAX AS PAX, G_SELL_RATE AS SELL_RATE, " & "G_SELL_TOTAL AS SUM, G_PAY_METHOD AS BANK, G_PAY_DATE AS PAY_DATE, G_VCHER_DATE AS VCHER_DATE, " & "CASE " & "WHEN G_PROG_SER = '3' THEN 'CANCEL' " & "WHEN G_PROG_SER = '2' THEN 'DONE' " & "WHEN (`G_PAY_DATE` <> '0000-00-00' AND (`G_PAY_DATE` IS NOT NULL OR LENGTH(`G_PAY_DATE` > 0))) THEN 'PAID' " & "ELSE '' " & "END AS STATE, " & "'' As BALANCE, G_IS_HOLIDAY AS HOLIDAY " & "FROM (GBOOKING B JOIN HGC G On B.GC_SER = G.GC_SER) JOIN HMEMBERS M ON B.G_MEM_SER = M.MEM_SER " & condition_G & ";"
데이터행이 10만개라 한다면,
가변형 로우를 만들어서, 필요한 개수만큼 엑셀의 데이터가 있는 행을 늘였다 줄였다를 하도록 코딩
이렇게 하면, 스크롤의 번거로움이 다 사라짐
4. 결론
아직도 워크시트에 데이터를 입력하고 시트 함수를 이용해서 업무를 하고 계산다면 데이터베이스화 해서 사용해보라 권하고 싶싶습니다. 엑세스나 MS-SQL, MYSQL같은 데이터베이스가 아니어도, 엑셀 워크시트 자체가 데이터베이스가 될 수 있습니다. 이를 SQL문으로 CRUD를 구현할 수 있습니다. 업무가 훨씬 간결하고 수월해질 것입니다. 시간대비 인건비, 업무 효율성 등등 장점이 더 많습니다.
P.S. 윈도우즈에 리눅스 서버를 설치해서 사용하기를 정말 강력히 추천합니다.
저도 잘 몰라서 구현을 못했다고, 맘잡고 공부하고 하니 어렵지 않게 됩니다. 모든것을 이해하고 있는 것은 아니지만, 딱 필요한 만큼 공부해서 구현해보니, 정말 신세계입니다.
6. 아래는 엑셀에 출력한 스샷입니다. 검색 조건만 주고 출력하면 끝입니다.
번호 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
[📚진짜쓰는 실무엑셀] 2024년 엑셀 공부, 이 책 한권으로 마스터하세요! (290)
오빠두엑셀
|
2022.02.03
|
추천 554
|
조회 844376
|
오빠두엑셀 | 2022.02.03 | 554 | 844376 | |
74491 |
New 이름관리 엑셀 업그레이드 버전 입니다.
(2)
박정호
|
2024.10.28
|
추천 0
|
조회 45
|
박정호 | 2024.10.28 | - | 45 |
74354 |
월드컵 랭킹 계산(ELO 점수 계산)
(4)
박정호
|
2024.10.22
|
추천 0
|
조회 54
|
박정호 | 2024.10.22 | - | 54 |
74269 |
엑셀2021이하에서 CHOOSECOLS, CHOOSEROWS 처럼 동작시키기
(13)
마법의손
|
2024.10.18
|
추천 2
|
조회 107
|
마법의손 | 2024.10.18 | 2 | 107 |
74204 |
이름관리 엑셀입니다.(모듈)
(6)
박정호
|
2024.10.15
|
추천 0
|
조회 136
|
박정호 | 2024.10.15 | - | 136 |
74028 |
로또번호2(반자동 기능 업데이트)
(4)
박정호
|
2024.10.05
|
추천 1
|
조회 130
|
박정호 | 2024.10.05 | 1 | 130 |
74012 |
매장 근태관리시트 공유
(3)
체리로그
|
2024.10.03
|
추천 1
|
조회 125
|
체리로그 | 2024.10.03 | 1 | 125 |
73964 |
[파워쿼리] 여러열 열분할하기
(4)
마법의손
|
2024.10.01
|
추천 1
|
조회 103
|
마법의손 | 2024.10.01 | 1 | 103 |
73915 |
M365 GroupBy, PivotBy 함수 공식 배포
(6)
원조백수
|
2024.09.27
|
추천 2
|
조회 139
|
원조백수 | 2024.09.27 | 2 | 139 |
73485 |
m365 신규함수(베타) : TRIMRANGE
(7)
더블유에이
|
2024.09.04
|
추천 1
|
조회 209
|
더블유에이 | 2024.09.04 | 1 | 209 |
73454 |
고등학교 선택과목 편성 방법
(4)
toug****
|
2024.09.03
|
추천 0
|
조회 122
|
toug**** | 2024.09.03 | - | 122 |
73241 |
로또 번호 엑셀입니다.
(9)
박정호
|
2024.08.24
|
추천 1
|
조회 278
|
박정호 | 2024.08.24 | 1 | 278 |
73096 |
그룹별 데이터 나누기 [가로정렬]
(7)
마법의손
|
2024.08.20
|
추천 2
|
조회 200
|
마법의손 | 2024.08.20 | 2 | 200 |
73093 |
ppt에 둥근 표 삽입하기
(4)
강민준🤗
|
2024.08.20
|
추천 1
|
조회 175
|
강민준🤗 | 2024.08.20 | 1 | 175 |
73029 |
XLOOKUP, XMATCH 함수에 새로운 Match_mode로 RegEx 추가
(2)
원조백수
|
2024.08.16
|
추천 3
|
조회 208
|
원조백수 | 2024.08.16 | 3 | 208 |
72413 |
아웃룩에 개빡쳐서 만든 ThunderBird로 수신자 별 대량 메일 발송 VBA 매크로 공유합니다.(업무자동화)
(4)
알파고
|
2024.07.22
|
추천 1
|
조회 495
|
알파고 | 2024.07.22 | 1 | 495 |
72045 |
조합짜주는 엑셀(20명까지) 출력은 1만항까지
(13)
박정호
|
2024.07.10
|
추천 1
|
조회 367
|
박정호 | 2024.07.10 | 1 | 367 |
71965 |
서양달력 업데이트 입니다.
(14)
박정호
|
2024.07.07
|
추천 0
|
조회 223
|
박정호 | 2024.07.07 | - | 223 |
71902 |
Excel에서 ImportRange, ImportHTML 함수 사용하기
(4)
원조백수
|
2024.07.05
|
추천 0
|
조회 167
|
원조백수 | 2024.07.05 | - | 167 |
71838 |
Microsoft 365 신규 번역 함수
(8)
원조백수
|
2024.07.02
|
추천 2
|
조회 385
|
원조백수 | 2024.07.02 | 2 | 385 |
71804 |
음력->양력->서양달력 변환
(2)
박정호
|
2024.07.01
|
추천 0
|
조회 231
|
박정호 | 2024.07.01 | - | 231 |
@dra**** 님 저도 프로그램 개발 했는데 이제는 다 잊어벼렸네요
Sql문 보니 옛날 생각납니다.
@dra**** 님 좋은 정보 감사합니다
@dra**** 님 외국 은행은 잘 모르겠지만.. 국내 은행은 DB 접근 권한이 막혀있어서 외부에서 불러오는건 거의 불가능할지도 모르겠네요..
보안이 워낙 철저해다보니.. 조회 한번만 잘못해도 개인정보법 위반사항이라..
대부분 사내 툴로만 작업가능하다보니 불편한 점이 있네요 ㅜ
@마이무거따 님 작은형이 전산실 개발부에서 일했습니다. ㅎㅎ