最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

員工薪資歷史-Union實現(xiàn)

來源:懂視網(wǎng) 責編:小采 時間:2020-11-09 14:57:36
文檔

員工薪資歷史-Union實現(xiàn)

員工薪資歷史-Union實現(xiàn):( 2010-8-27 記錄)員工薪資歷史 -Union 實現(xiàn): 1、 表結構 Salary ( id , empID , jbxz,yfxz,sfxz,jse , pid ) Perion(id,bm,year,month,sdate,edate) 表結構大體是這樣的,其中 bm 是薪資日期編碼如 2010-8 ,但是不一定也可以是
推薦度:
導讀員工薪資歷史-Union實現(xiàn):( 2010-8-27 記錄)員工薪資歷史 -Union 實現(xiàn): 1、 表結構 Salary ( id , empID , jbxz,yfxz,sfxz,jse , pid ) Perion(id,bm,year,month,sdate,edate) 表結構大體是這樣的,其中 bm 是薪資日期編碼如 2010-8 ,但是不一定也可以是

( 2010-8-27 記錄)員工薪資歷史 -Union 實現(xiàn): 1、 表結構 Salary ( id , empID , jbxz,yfxz,sfxz,jse , pid ) Perion(id,bm,year,month,sdate,edate) 表結構大體是這樣的,其中 bm 是薪資日期編碼如 2010-8 ,但是不一定也可以是 108 ,無規(guī)則可言。

( 2010-8-27 記錄)員工薪資歷史 -Union 實現(xiàn):


\

1、 表結構

Salary ( id , empID , jbxz,yfxz,sfxz,jse , pid )

Perion(id,bm,year,month,sdate,edate…)

表結構大體是這樣的,其中 bm 是薪資日期編碼如 2010-8 ,但是不一定也可以是 108 ,無規(guī)則可言。 Year 是薪資年, month 是薪資月, sdate 和 edate 是開始和結束日期。

2. 本來打算用交叉表實現(xiàn)的,原本已經(jīng)用交叉表實現(xiàn)了,不過最后未能用交叉表實現(xiàn)“ xxxx 小計”,只能實現(xiàn)的顯示“小計”,最后改用union 方式實現(xiàn)。

3. 實現(xiàn)要點:

注意 group by 中的字段及順序,注意 order by 中的字段及順序

4 .代碼如下:

/**
 統(tǒng)計員工的期間薪資
*/

IF EXISTS (select * from sysobjects where id = object_id('sp_count_salary') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
 DROP PROCEDURE sp_count_salary
GO

CREATE PROCEDURE sp_count_salary 
 @P_EMP_ID INT, --員工id
 @P_SPLA_PER_ID INT, --開始期間id
 @P_EPLA_PER_ID INT --結束期間id
WITH encryption 
AS
BEGIN 
 BEGIN TRANSACTION T1

 DECLARE @V_S_YEAR INT --開始期間年份
 DECLARE @V_S_MONTH INT --開始期間月份
 DECLARE @V_E_YEAR INT --結束期間年份
 DECLARE @V_E_MONTH INT --結束期間月份
 
 select @V_S_YEAR=pla_per_year,@V_S_MONTH=pla_per_month from pla_period where pla_per_id=@P_SPLA_PER_ID
 select @V_E_YEAR=pla_per_year,@V_E_MONTH=pla_per_month from pla_period where pla_per_id=@P_EPLA_PER_ID 
 
 select (CAST(pla_per_year AS NVARCHAR(4)) + '-' + RIGHT('0' + CAST(pla_per_month AS NVARCHAR(2)), 2)) as '時間', sum(pay_res_btax) N'基本薪資',sum(pay_res_atax) N'應發(fā)薪資',sum(pay_res_result) N'實發(fā)薪資',sum(pay_res_tax) N'繳稅額'
 from pla_period pp,pay_res pr
 where pp.pla_per_id = pr.pay_res_perid
 and pay_res_empid = @P_EMP_ID
 and (pla_per_year > @V_S_YEAR or (pla_per_year = @V_S_YEAR and pla_per_month >= @V_S_MONTH))
 and (pla_per_year < @V_E_YEAR or (pla_per_year = @V_E_YEAR and pla_per_month <= @V_E_MONTH))
 group by pla_per_year,pla_per_month
 union
 (
 select cast(pla_per_year as varchar(10))+N'小計' as '時間', sum(pay_res_btax) N'基本薪資',sum(pay_res_atax) N'應發(fā)薪資',sum(pay_res_result) N'實發(fā)薪資',sum(pay_res_tax) N'繳稅額'
 from pla_period pp,pay_res pr
 where pp.pla_per_id = pr.pay_res_perid
 and pay_res_empid = @P_EMP_ID
 and (pla_per_year > @V_S_YEAR or (pla_per_year = @V_S_YEAR and pla_per_month >= @V_S_MONTH))
 and (pla_per_year < @V_E_YEAR or (pla_per_year = @V_E_YEAR and pla_per_month <= @V_E_MONTH))
 group by pla_per_year
 )
 union
 (
 select N'合計' as '時間', sum(pay_res_btax) N'基本薪資',sum(pay_res_atax) N'應發(fā)薪資',sum(pay_res_result) N'實發(fā)薪資',sum(pay_res_tax) N'繳稅額'
 from pla_period pp,pay_res pr
 where pp.pla_per_id = pr.pay_res_perid
 and pay_res_empid = @P_EMP_ID
 and (pla_per_year > @V_S_YEAR or (pla_per_year = @V_S_YEAR and pla_per_month >= @V_S_MONTH))
 and (pla_per_year < @V_E_YEAR or (pla_per_year = @V_E_YEAR and pla_per_month <= @V_E_MONTH))
 )
 order by (CAST(pla_per_year AS NVARCHAR(4)) + '-' + RIGHT('0' + CAST(pla_per_month AS NVARCHAR(2)), 2))

 
 IF @@ERROR > 0 
 BEGIN
 ROLLBACK TRANSACTION T1
 END 
 ELSE
 BEGIN
 COMMIT TRANSACTION T1
 END
END

GO

--EXEC sp_count_salary 4901,1131,1153

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

員工薪資歷史-Union實現(xiàn)

員工薪資歷史-Union實現(xiàn):( 2010-8-27 記錄)員工薪資歷史 -Union 實現(xiàn): 1、 表結構 Salary ( id , empID , jbxz,yfxz,sfxz,jse , pid ) Perion(id,bm,year,month,sdate,edate) 表結構大體是這樣的,其中 bm 是薪資日期編碼如 2010-8 ,但是不一定也可以是
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top