통용 되 는 개인 소득세 계산 함수 -- SQL 버 전

5345 단어 Sql
-- 해당 연월 의 세율 은 스스로 설정 하 시기 바 랍 니 다. 참고 정 보 는 다음 과 같 습 니 다.
-- 관련 자료 도 있 을 수 있다http://download.csdn.net/detail/cnjack/3581426다운로드 하 다.
/*
우리 나 라 는 1981 년 개인 소득 세 를 징수 하기 시작 한 이후 20 여 년 동안 800 위안 을 유지 해 왔 으 며 2005 년 과 2007 년 에 두 차례 에 걸 쳐 개인 소득세 징수 점 을 올 렸 다.
 
2005 년 10 월 27 일 에 10 회 전국 인민 대표 대회 상무위원회 제1 8 차 회 의 는 오후 에 개인 소득세 법 개정 에 관 한 결정 을 표결 하여 통과 시 켰 고 개 정 된 개인 소득세 법 은 2006 년 1 월 1 일부 터 시행 되 었 다.이번 개인 소득세 법 은 두 곳 에서 개정 됐다.그 중에서 제6 조 제1 항 은 '급여, 급여 소득 은 매달 수입 액 에서 비용 1600 위안 을 뺀 후의 잔액 으로 납세 소득 액 을 해 야 한다' 고 수정 하 는 동시에 '개인 소득세 세율 표 1' 의 부 주 를 상응 하 게 수정 한다.
 
2007 년 12 월 29 일 10 회 전국 인민 대표 대회 상무위원회 제3 1 차 회의 에서 개인 소득세 법 개정 에 관 한 결정 을 의결 하 였 다.개인 소득세 부 과 점 은 2008 년 3 월 1 일부 터 1600 위안 에서 2000 위안 으로 높 아 졌 다.이번 개정 은 주민 들 의 기본 생활 소비 지출 이 늘 어 나 는 새로운 상황 에 적응 해 중 저 소득 자의 납세 부담 을 줄 였 다.
 
그러나 두 차례 의 징수 포인트 인상 으로 '중 저 소득 자 는 세 부담 이 적 고 고소 득 세 부담 이 많다' 는 난감 한 상황 이 빚 어 졌 다. 3000 원 으로 올 리 면 기 존 세율 로 월급 5 천원 을 계산 하 는 납세자 의 세 부담 은 100 원 줄 어 들 수 밖 에 없 는데 10 만 3 천원 이 400 원 줄 어 들 면 개 세 조정 은 이 문 제 를 잘 해결 해 야 한다.따라서 개 세 개혁 방안 은 중 저소득층 이 세금 개혁 에 대한 요 구 를 효과적으로 해결 하고 정부 가 세금 에 대한 수 요 를 병행 하 며 고소 득 층 의 납세 부담 을 근거 로 해 야 한다.세금 조작 은 간단 하고 쉬 워 야 하 며 세금 원 가 를 낮 춰 야 한다.결함 이 있 는 세율 인 9 급 세율 을 바 꿔 야 한다.개인 세금 개혁 은 공평 을 파악 해 야 한다. 공평 한 원칙 은 징수 점 에서 공평 하고 도리 에 맞 는 세율 을 찾 아 소득 이 낮은 세금 을 적 게 내 는 것 이지 세금 을 내지 않 는 것 이 아니 라 소득 이 높 은 사람 에 게 세금 을 많이 내 게 하 는 것 이지 만 사람 을 설득 하 는 근거 도 있어 야 한다. 세금 을 어떻게 받 으 려 고 하 는 것 이 아니 라 누구 에 게 나 공평 해 야 한다.이 를 위해 유조 양 위원의 '개 세 개혁 사고의 오점 돌파' 와 '개 세 징수 지점 을 높이 고 살길 을 찾 아 자연 누진 세율 을 세 워 개 세 개혁 을 유암 화 명' 을 읽 어 보 는 것 은 국제 적 으로 모두 선진 적 인 사고방식 이다.
*/if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TaxRateTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TaxRateTable] GO CREATE TABLE [dbo].[TaxRateTable] ( [tax_year] [int] NOT NULL , [tax_month] [int] NOT NULL , [tax_salary] [int] NOT NULL , [tax_lower] [int] NOT NULL , [tax_upper] [int] NOT NULL , [tax_rate] [int] NOT NULL , [tax_deduct] [int] NOT NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[TaxRateTable] WITH NOCHECK ADD CONSTRAINT [PK_TaxRateTable] PRIMARY KEY CLUSTERED ( [tax_year], [tax_month], [tax_rate] ) ON [PRIMARY]GO exec sp addextendedproperty N 'MS Description', N '개인 소득세 세율 표', N 'user', N 'dbo', N 'table', N 'TaxRateTable' GO exec sp addextendedperty N 'MS Description', N '공제 수', N 'user', N 'dbo', N 'table', N 'TaxRateTable', N 'column', N 'tax deduct' GO exec sp addextendedperty N 'MS Description', N '범위 (낮 음)', N' user ', N' dbo ', N' table ', N' taxRateTable ', N' column ', N' tax lower 'GO exec sp addextendedproperty N' MS Description ', N' 月 ', N' user ', N' dbo ', N' table ', N' taxRateTable ', N' column ', N' tax month 'GO exec sp addextendedperty N' MS Description ', N' 세율 (%)', N' user ', N' dbo ', N' table ', N' taxRateTable ', N' column ', N' tax rate 'GO exec sp addextendedproperty N' MS Description ', N' 기세금액 ', N' user ', N' dbo ', N' table ', N' taxRateTable ', N' column ', N' tax salary 'GO exec sp addextendedperty N' MS Description ', N' 범위 (높 음)', N' user ', N' dbo ', N' table ', N' taxRateTable ', N' column ', N' tax upper 'GO exec sp addextendedproperty N' MS Description ', N' year ', N' user ', N' dbo ', N' table ', N' taxRateTable ', N' column ', N' tax year 'GO 를 TaxRateTable 선택 * 부터 openrowset (' SQLOLEDB ',' 192.168.100.6 ';' sa ', data test. dbo. TaxRateTable) 존재 하 는 경우(select * from dbo.sysobjects where id = object_id(N'[dbo].[fun_Return_Tax]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[fun_Return_Tax] GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE FUNCTION fun_Return_Tax(@Year nvarchar(4),@Month nvarchar(2),@Salary decimal(18,4)) RETURNS decimal(18,4) AS begin declare @TaxRate decimal(18, 4), @ minMonths int, @ currentMonths int -- 1. 현재 계산 년 월 이후 최소 년 월 의 총 월 수 select @ minMonths = min (tax year * 12 + tax Month) from taxRateTable where tax year * 12 + tax Month > @ Year * 12 + @ Month -- 2. 현재 계산 년 월 에 대응 하 는 총 월 수 if isnull (@ minMonths, 0) > 0 select @ currentMonths = max (tax year * 12 + tax Month)taxRateTable where tax year * 12 + tax Month 의 세율 표 에서 세금 을 반환 하 는 것 은 응당 받 아야 할 임금 입 니 다. '-- raisorror (@ msg, 16, 1) return @ Salary end else begin -- select * from TaxRateTable where tax year * 12 + tax Month = @ currentMonths and (@ Salary - Tax Salary > Tax Lower and @ Salary - Tax Salary < = Tax Upper) select @ TaxRate = (@ Salary - Tax Salary) * (Tax Rate / 10.0)-Tax_Deduct from TaxRateTable where tax_year*12+tax_Month=@currentMonths and (@Salary-Tax_Salary>Tax_Lower and @Salary-Tax_Salary<=Tax_Upper) end return isnull(@TaxRate,0) end GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
 
-- 호출 방법: fun Return Tax (2011, 5, 3600)

좋은 웹페이지 즐겨찾기