SQL Procedure示例程序02

来源:互联网 发布:java是哪个公司开发的 编辑:程序博客网 时间:2024/05/16 03:47


ALTER PROCEDURE [dbo].[SP_HRXZ_GetRptSalaryReportList] ( @PACKAGE_ID                 VARCHAR(50), @REGION_CODE                NVARCHAR(100), @AREA_NAME                  NVARCHAR(100), @OUTLET_NAME                NVARCHAR(100), @JYMS_NAME                  NVARCHAR(100), @PTR_NO                     VARCHAR(50), @PTR_NAME                   NVARCHAR(100))AS DECLARE @sql  NVARCHAR(4000)BEGIN--,[S_BASE_SALARY]     -- 月标准底薪--,[S_UNEMPLOYEE]      -- 缺勤扣款--,[S_OVERTIME]        -- 加班费--,[S_EXTRACT]         -- 奖金= 提成奖金 --,[S_TEL_ALLOWANCE]   -- 电话津贴--,[S_TAI_PRIZE]       -- 台数嘉奖--,[S_ADJUST]          -- 调整工资 --,[S_COMPANY_PENSION]       -- 公司缴纳养老--,[S_COMPANY_MEDICAL]       -- 公司缴纳医疗--,[S_COMPANY_UNEMPLOYEEMENT] -- 公司缴纳失业--,[S_COMPANY_FERTILITY]      -- 公司缴纳生育     --,[S_COMPANY_INJURY]         -- 公司缴纳工伤--,[S_MANAGEMENT_FEE]         -- 服务费 = 管理费--,[S_ECONOMIC_COMPENSATION]  -- 赔偿金 = 经济补偿金--,[S_OTHER_ADJUST]           -- 调整--,[S_SHIFA_SALARY]           -- 实发工资--,[S_YINGFA_SALARY]          -- 应发工资             SET @sql='SELECT [OID]  ,[PACKAGE_ID]  ,[PTR_ID]  ,[PTR_NO]  ,[PTR_NAME]  ,CONVERT(VARCHAR(10),[JOIN_TIME],23) AS JOIN_TIME  ,[REGION_ID]  ,[REGION_CODE]  ,[AREA_ID]  ,[AREA_NAME]  ,[OUTLET_ID]  ,[OUTLET_NAME]  ,[JYMS_ID]  ,[JYMS_NAME]  ,CONVERT(VARCHAR(7),[DATE_FROM],23) AS DATE_FROM  ,[DATE_TO]  ,[S_STD_SALARY]     ,[S_BASE_SALARY]     ,[S_UNEMPLOYEE]      ,[S_OVERTIME]         ,[S_EXTRACT]          ,[S_TEL_ALLOWANCE]    ,[S_TAI_PRIZE]   ,[S_ADJUST]  ,[S_COMPANY_PENSION]       ,[S_COMPANY_MEDICAL]         ,[S_COMPANY_UNEMPLOYEEMENT]   ,[S_COMPANY_FERTILITY]          ,[S_COMPANY_INJURY]           ,[S_MANAGEMENT_FEE]           ,[S_ECONOMIC_COMPENSATION]    ,[S_OTHER_ADJUST]             ,[S_SHIFA_SALARY]             ,[S_YINGFA_SALARY]     ,'''' AS S_OTHER_PRIZE  ,'''' AS S_SUB_TOTAL                       FROM [HRXZ_SALARY_ALL_ITEMS] WHERE [PACKAGE_ID]=''' + @PACKAGE_ID + ''' 'IF @REGION_CODE<>''SET @sql = @sql + ' AND [REGION_CODE] LIKE ''%' + @REGION_CODE + '%'' 'IF @AREA_NAME<>''SET @sql = @sql + ' AND [AREA_NAME] LIKE ''%' + @AREA_NAME + '%'' 'IF @OUTLET_NAME<>''SET @sql = @sql + ' AND [OUTLET_NAME] LIKE ''%' + @OUTLET_NAME + '%'' 'IF @JYMS_NAME<>''SET @sql = @sql + ' AND [JYMS_NAME] LIKE ''%' + @JYMS_NAME + '%'' 'IF @PTR_NO<>''SET @sql = @sql + ' AND [PTR_NO] LIKE ''%' + @PTR_NO + '%'' 'IF @PTR_NAME<>''SET @sql = @sql + ' AND [PTR_NAME] LIKE ''%' + @PTR_NAME + '%'' 'SET @sql = @sql + ' ORDER BY [REGION_CODE],[PTR_NO] 'PRINT  @sqlexec(@sql)END

ALTER PROCEDURE [dbo].[SP_HRXZ_GetRptPTRTurnOver] ( @TURNOVER_TYPE              INT, @DATE_FROM_PARA             VARCHAR(10), @REGION_CODE                NVARCHAR(100), @AREA_NAME                  NVARCHAR(100), @OUTLET_NAME                NVARCHAR(100), @JYMS_NAME                  NVARCHAR(100), @PTR_NO                     VARCHAR(50), @PTR_NAME                   NVARCHAR(100))AS DECLARE @sql                        NVARCHAR(4000)DECLARE @DATE_YEAR                  INTDECLARE @DATE_MONTH                 INTDECLARE @DATE_FROM                  DATETIMEDECLARE @DATE_TO                    DATETIMEDECLARE @OID                        VARCHAR(50)DECLARE @PTR_ID                     VARCHAR(50)DECLARE @JYMS_VALUE_TEMP            NVARCHAR(100)  DECLARE @JYMS_NAME_TEMP             NVARCHAR(100)  BEGINSET @DATE_FROM = CAST(@DATE_FROM_PARA AS DATETIME)SET @DATE_YEAR = YEAR(@DATE_FROM)SET @DATE_MONTH = MONTH(@DATE_FROM)SET @DATE_TO = DATEADD(m,1,@DATE_FROM)BEGIN TRYBEGIN TRANSACTIONDELETE FROM [HRXZ_PTR_TURNOVER] WHERE [DATE_YEAR]= @DATE_YEAR AND [DATE_MONTH] = @DATE_MONTH AND TURNOVER_TYPE = @TURNOVER_TYPE--入职人员IF @TURNOVER_TYPE = 1INSERT INTO [HRXZ_PTR_TURNOVER]   ([OID]   ,[DATE_YEAR]   ,[DATE_MONTH]   ,[TURNOVER_TYPE]   ,[PTR_ID]   ,[PTR_NO]   ,[PTR_NAME]   ,[REGION_ID]   ,[REGION_CODE]   ,[REGION_NAME]   ,[AREA_ID]   ,[AREA_CODE]   ,[AREA_NAME]   ,[OUTLET_ID]   ,[OUTLET_CODE]   ,[OUTLET_NAME]   ,[JYMS_VALUE]   ,[JYMS_NAME]   ,[JOIN_TIME]   ,[LEAVE_TIME]   ,[LEAVE_REASON])SELECT newid(),@DATE_YEAR,@DATE_MONTH,@TURNOVER_TYPE,a.OID   ,a.STAFFNUMBER,a.NAME,c.PARENTOID AS REGION_ID,d.SOG_ORG_CODE AS REGION_CODE,d.SOG_ORG_NAME AS REGION_NAME   ,b.ORG_OID AS AREA_ID,c.SOG_ORG_CODE AS AREA_CODE,c.SOG_ORG_NAME AS AREA_NAME,a.OUTLETID,b.OUT_OUTID   ,b.OUT_SHORTNAME,'','',a.JOINTIME,a.LEAVETIME,''FROM HR_PROMOTER a INNER JOIN TBLOUTLET bON a.OUTLETID = b.OIDLEFT JOIN TBL_SALEORG c ON b.ORG_OID = c.OID AND c.SOG_LEVEL=3 AND c.SOG_BIZLEVEL=3LEFT JOIN TBL_SALEORG d ON c.PARENTOID = d.OID AND d.SOG_LEVEL=2 AND d.SOG_BIZLEVEL=2WHERE a.JOINTIME>=@DATE_FROM AND a.JOINTIME<@DATE_TOELSE--离职人员INSERT INTO [HRXZ_PTR_TURNOVER]   ([OID]   ,[DATE_YEAR]   ,[DATE_MONTH]   ,[TURNOVER_TYPE]   ,[PTR_ID]   ,[PTR_NO]   ,[PTR_NAME]   ,[REGION_ID]   ,[REGION_CODE]   ,[REGION_NAME]   ,[AREA_ID]   ,[AREA_CODE]   ,[AREA_NAME]   ,[OUTLET_ID]   ,[OUTLET_CODE]   ,[OUTLET_NAME]   ,[JYMS_VALUE]   ,[JYMS_NAME]   ,[JOIN_TIME]   ,[LEAVE_TIME]   ,[LEAVE_REASON])SELECT newid(),@DATE_YEAR,@DATE_MONTH,@TURNOVER_TYPE,a.OID   ,a.STAFFNUMBER,a.NAME,c.PARENTOID AS REGION_ID,d.SOG_ORG_CODE AS REGION_CODE,d.SOG_ORG_NAME AS REGION_NAME   ,b.ORG_OID AS AREA_ID,c.SOG_ORG_CODE AS AREA_CODE,c.SOG_ORG_NAME AS AREA_NAME,a.OUTLETID,b.OUT_OUTID   ,b.OUT_SHORTNAME,'','',a.JOINTIME,a.LEAVETIME,''FROM HR_PROMOTER a INNER JOIN TBLOUTLET bON a.OUTLETID = b.OIDLEFT JOIN TBL_SALEORG c ON b.ORG_OID = c.OID AND c.SOG_LEVEL=3 AND c.SOG_BIZLEVEL=3LEFT JOIN TBL_SALEORG d ON c.PARENTOID = d.OID AND d.SOG_LEVEL=2 AND d.SOG_BIZLEVEL=2WHERE a.LEAVETIME>=@DATE_FROM AND a.LEAVETIME<@DATE_TODECLARE MyCursor CURSOR FORSELECT [OID],[PTR_ID] FROM [HRXZ_PTR_TURNOVER] WHERE [DATE_YEAR]=@DATE_YEAR AND [DATE_MONTH] = @DATE_MONTH AND TURNOVER_TYPE = @TURNOVER_TYPEOPEN MyCursorFETCH NEXT FROM MyCursorINTO @OID,@PTR_IDWHILE @@FETCH_STATUS = 0BEGINSET @JYMS_VALUE_TEMP =''SET @JYMS_NAME_TEMP =''exec [SP_HRXZ_GetOutletJYMS] @PTR_ID ,@JYMS_VALUE_TEMP out,@JYMS_NAME_TEMP outUPDATE [HRXZ_PTR_TURNOVER] SET [JYMS_VALUE]=@JYMS_VALUE_TEMP,[JYMS_NAME]=@JYMS_NAME_TEMP WHERE OID=@OIDFETCH NEXT FROM MyCursorINTO @OID,@PTR_IDENDCLOSE MyCursorDEALLOCATE MyCursorCOMMIT TRANSACTIONEND TRYBEGIN CATCHROLLBACK TRANSACTIONEND CATCHSET @sql='SELECT [OID]  ,(CAST([DATE_YEAR] AS VARCHAR) + ''.'' + CAST([DATE_MONTH] AS VARCHAR)) AS YEAR_MOTNTH  ,[TURNOVER_TYPE]  ,[PTR_ID]  ,[PTR_NO]  ,[PTR_NAME]  ,[REGION_ID]  ,[REGION_CODE]  ,[REGION_NAME]  ,[AREA_ID]  ,[AREA_CODE]  ,[AREA_NAME]  ,[OUTLET_ID]  ,[OUTLET_CODE]  ,[OUTLET_NAME]  ,[JYMS_VALUE]  ,[JYMS_NAME]  ,CONVERT(VARCHAR(10),[JOIN_TIME],23) JOIN_TIME  ,CONVERT(VARCHAR(10),[LEAVE_TIME],23)  LEAVE_TIME  ,[LEAVE_REASON] FROM [HRXZ_PTR_TURNOVER] WHERE TURNOVER_TYPE = ' + CAST(@TURNOVER_TYPE AS VARCHAR)SET @sql =@sql + ' AND DATE_YEAR = ' + CAST(@DATE_YEAR AS VARCHAR)SET @sql =@sql + ' AND DATE_MONTH = ' + CAST(@DATE_MONTH AS VARCHAR)IF @REGION_CODE<>''SET @sql = @sql + ' AND [REGION_CODE] LIKE ''%' + @REGION_CODE + '%'' 'IF @AREA_NAME<>''SET @sql = @sql + ' AND [AREA_NAME] LIKE ''%' + @AREA_NAME + '%'' 'IF @OUTLET_NAME<>''SET @sql = @sql + ' AND [OUTLET_NAME] LIKE ''%' + @OUTLET_NAME + '%'' 'IF @JYMS_NAME<>''SET @sql = @sql + ' AND [JYMS_NAME] LIKE ''%' + @JYMS_NAME + '%'' 'IF @PTR_NO<>''SET @sql = @sql + ' AND [PTR_NO] LIKE ''%' + @PTR_NO + '%'' 'IF @PTR_NAME<>''SET @sql = @sql + ' AND [PTR_NAME] LIKE ''%' + @PTR_NAME + '%'' 'SET @sql =@sql + ' ORDER BY [REGION_CODE],[AREA_NAME],[OUTLET_NAME],[PTR_NAME] 'PRINT  @sqlexec(@sql)END



原创粉丝点击