【发布时间】:2018-01-14 13:34:26
【问题描述】:
我想计算员工每年的工资。假设一名员工自 2016 年 7 月以来在公司工作了 1.5 年,那么我想分别显示 2 行的记录,例如 2016 年和 2017 年的工资。如果月薪是20000,那么对于18 months,结果应该是这样显示的。
EmpID Year MonthlySalary YearlySalary TotalSalary
1 2016 20000 120000 120000 (because was hired in jul)
1 2017 20000 240000 360000
2 2017 18000 216000 216000
我有一个查询,可以计算每月工资、年工资和总工资。我正在使用月数计算总工资。
CREATE TABLE EmployeeInfo (
EmpID Int,
FirstName Varchar(25),
LastName Varchar(25),
MonthlySalary Int,
DOJ Date);
INSERT INTO EmployeeInfo VALUES (1, 'Ahmad', 'Usman', '20000', '2016-06-01');
INSERT INTO EmployeeInfo VALUES (2, 'Erick', 'Ortiz', '18000', '2017-01-01');
SELECT [EmployeeName] = [EI].[FirstName] + ' ' + [EI].[LastName],
[EI].[DOJ],
[MonthlySalary] = [EI].MonthlySalary,
[EXPERIENCE] = ( CONVERT(VARCHAR(2), Datediff(YEAR, [DOJ], Getdate())) ),
[TotalSalary] = ( ( CONVERT(VARCHAR(2), Datediff(MONTH, [DOJ], Getdate())) ) * ( Isnull(NULL, [EI].MonthlySalary) ) )
FROM [EmployeeInfo] [EI]
【问题讨论】:
-
发布预期结果
-
@Pரதீப் 预期输出在帖子的开头。
-
你使用的是哪个版本的sql server?
-
这需要计算到哪一年?
-
我想计算所有年份。请阅读说明。如果该员工是 2016 年入职的,那么我想分别计算 2016 年的工资和 2017 年的工资。
标签: sql sql-server