我需要你帮助我。我必须执行一个程序来计算Management Sql Server 2014中的工资。该程序应如下所示: 薪水是薪金总额和带薪假期的总和:Sal =总薪金+带薪假日
要计算带薪假期,我们需要: 前六个月的工资:
Sal_6 + Sal_5 + Sal_4 + Sal_3 + Sal_2 + Sal_1 =基础
Sal_6 = GrossSal_6 + Paid_Holiday_6(如上所述) ... 前六个月的工作天数或假期天数:
NOdays_6 + NOdays_5 + NOdays_4 + NOdays_3 + NOdays_2 + NOdays_1 = SumOfDays
带薪休假是:Paid_Holiday = BASE / SumOfDays * NOdays。
从数据库中,我有以下表格:
条目(Identry,Gross_Salary,NOdayworked,Date,IDEmplyee)
员工(IDEmplyee,姓名,工作日期)
假日(IDHoliday,StartDate,FinalDate,IDEmployee)
该员工拥有一份资历证书,其中包含前任雇主的最后6份工资。
证书(IdCertificate,日期,Gross_Salary,NOdaywork,Pad_Holiday,NOdays,IDEmployee)
因为我需要最近的带薪假期和工资来形成总工资,所以我认为我应该使用临时表。该表将保留证书中的数据和条目中的数据
到目前为止,我已经尝试过以下存储过程:
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笔薪水 Paid_Holiday = BASE / SumOfDays * NOdays,但我不知道该怎么做。我想到了光标或其他东西。 PS:如果您听不懂,请告诉我。我的母语不是英语(同样,该程序不适用于所有国家/地区。 该程序在罗马尼亚有效)