드로우홀릭 더베이직
직원의 급여대장을 만들고 있습니다.
그런데 소득세(간이과세표)에 대한 처리를 어떻게 해야할지 도저히 모르겠습니다.
무조건따라하기 시리즈를 보면서 이렇게 저렇게 연구를 해보는데 잘 안됩니다.
https://www.nts.go.kr/inc/download.asp?file_url=/nts_data/info/%C1%B6%C8%B8/2020%B3%E2_%B1%D9%B7%CE%BC%D2%B5%E6_%B0%A3%C0%CC%BC%BC%BE%D7%C7%A5(%C1%B6%B0%DF%C7%A5).xls&file_nm=2020%B3%E2_%B1%D9%B7%CE%BC%D2%B5%E6_%B0%A3%C0%CC%BC%BC%BE%D7%C7%A5(%C1%B6%B0%DF%C7%A5).xls
자료는 위 국세청 링크를 올렸습니다.
변수는 2가지가 필요합니다.
직원의 급여, 그리고 가족수(공제)
직원의 급여는 구간에 걸립니다. 이상 이하
이게 DB3번 법칙인 것 같은데,
어떻게 처리할 수 있을까요?
직원 매월급여대장엔 급여액과, 가족수 필드는 있습니다.
도움 좀 부탁드리겠습니다.
답변이 늦어 죄송합니다.
음.. 구체적으로 무엇을 어떻게 하기를 원하시는지 확실하지 않습니다.
'소득세(간이과세표)에 대한 처리'라고 하셨는데..
직원의 급여와 가족수라는 변수를 가지고, 링크로 올려주신 표에서 적절한 값을 찾아내는 것을 말씀하시는 것이죠?
(혹시 이 질문이 아니라면, 다시 질문해 주십시오.)
일단, 링크로 된 표를 그대로 찾는 것은 그렇게 좋은 방법은 아닙니다.
(안되는 것은 아닙니다만..)
링크로 된 표를, 다음과 같은 자료구조로 바꾸는 것이 좋겠습니다.
월급여액 가족수 세액
일단 '월급여액' 필드의 경우, 저는 하나로만 구성하였는데..
링크로 된 표에서는 초과, 이하 기준이네요.
그렇다면 B열의 값(이하)만 DB에 있으면 됩니다.
그렇게 하면, 다음과 같은 로직으로 쿼리를 구하면 됩니다.
입력 월급여액이 '월급여액' 필드보다 작거나 같은값 중, 가장 큰 레코드
예를 들어, 월급여액이 9,870,000 이라면, B열에서 9,870,000원 보다 작은 레코드를 추출
그리고 그 결과에 대해서 내림차순으로 정렬
맨 위의 레코드만 추출
이것이 하나의 쿼리로 구할 수 있습니다.
말로는 이해가 되는데, 쿼리를 만들기 어려울 수 있습니다.
예제 파일을 올려주시면, 제가 수정해서 다시 올려드릴 수 있습니다.
링크로 된 표를, 자료구조를 바꾸기를 권장해 드렸는데..
바꾸지 않는다면, 위의 로직 그대로 구하되, '금액' 필드명 대신 부양가족 수를 필드로 하게끔 '동적쿼리'를 만들면 됩니다.
이것 역시 어렵다면, 예제를 만들어서 올려주세요.
엑셀로 하면 더 쉬운 느낌같은데요.
직원 급여액이 해당 표의 몇행에 있는지 판단하고 (MATCH)
가족수는 1명 1열, 2명 2열 각각 이렇게 있으므로 열번호 그대로 부여해서
INDEX로 해당 표의 행번호, 열번호로서 불러오면 되는 것 같습니다.