Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 工资计算_Sql Server_Tsql - Fatal编程技术网

Sql server 工资计算

Sql server 工资计算,sql-server,tsql,Sql Server,Tsql,我需要你帮助我。我必须在Sql Server 2014中执行一个计算工资管理的程序。程序应该是这样的: 工资是工资总额和带薪假期的总和:Sal=工资总额+带薪假期 对于带薪假期的计算,我们需要: 前6个月的工资: Sal_6+Sal_5+Sal_4+Sal_3+Sal_2+Sal_1=基础 Sal_6=Grossal_6+带薪假期(如上所述) ... 前6个月的工作天数或假日天数: NOdays_6+NOdays_5+NOdays_4+NOdays_3+NOdays_2+NOdays_1=总天数

我需要你帮助我。我必须在Sql Server 2014中执行一个计算工资管理的程序。程序应该是这样的: 工资是工资总额和带薪假期的总和:Sal=工资总额+带薪假期

对于带薪假期的计算,我们需要: 前6个月的工资:

Sal_6+Sal_5+Sal_4+Sal_3+Sal_2+Sal_1=基础

Sal_6=Grossal_6+带薪假期(如上所述) ... 前6个月的工作天数或假日天数:

NOdays_6+NOdays_5+NOdays_4+NOdays_3+NOdays_2+NOdays_1=总天数

带薪假期为:带薪假期=基本/累计天数*天数

从数据库中,我有以下表格:

条目(身份、工资总额、工作日、日期、雇员)

雇员(ID雇员、姓名、雇用日期)

假日(IDHoliday、StartDate、FinalDate、IdeEmployee)

该雇员拥有一份资历证书,上面有前雇主最后6份工资

证书(ID证书、日期、工资总额、工作日、带薪假期、工作日、ID员工)

因为我需要最后的带薪假期和工资来形成总工资,我想我应该使用一个临时表。此表将保留证书中的数据和条目中的数据

到目前为止,我尝试了以下存储过程:

create proc payroll
 @idemployee int
as
create table #tmp(  id int identity(1,1) primary key, date1 date, grosssalary money,  idemployee int, nodaysworked int, paidholiday money, noofdays int)
insert into #tmp ( date1 , grosssalary ,  idemployee , nodaysworked , paidholiday , noofdays )
Select Top 6  Date,
Gross_Salary,
IDEmployee,
NOdayworked,
Paid_Holiday,
IDEmployee
 from Certificate 
 WHERE IDEmployee = @idemployee
ORDER BY Date asc
在那之后,我每天都要拿最后6份薪水 带薪假期=基本/总天数*天数,但我不知道该怎么办。我想到了光标什么的。 如果你不明白,请告诉我。我的母语不是英语(也不是所有国家都有这个课程)。
该程序在罗马尼亚有效)

请提供一些您希望看到的数据和输出结果。Thanksher是一个很好的起点。对于#tmp,我希望得到以下结果:ID/date1/Grossalary/IdeEmployee/nodaysworked/paidholiday/noofdays 1/01/03/2018/3890/01/20/100/2。。。对于可变带薪假期,我希望它遵循以下公式:带薪假期=基本/总天数*天数。表格:证书ID证书、日期、工资总额、工作日、带薪假期、工作日、ID员工2018年1月1日/2000年1月21日/51.20/1/01日0201.02.2018/2000/22/0/0/01。。。对于其余的表,数据是相似的。