计算员工的月薪

Posted

技术标签:

【中文标题】计算员工的月薪【英文标题】:calculating month salary for an employee 【发布时间】:2014-06-03 18:52:32 【问题描述】:

我正在使用 MS Access 2010 处理我的数据库

我需要建立一个查询来计算每个员工的月薪

它是这样的:

    用户输入,年份 用户再次输入,哪个月 显示输入日期每个员工的工资

查询中有2个表:ShiftsEmployees

Shifts 有一个EmployeeID 字段和一个Day 字段

日期字段格式为:短日期

问题是我不知道如何仅访问月份和年份!

我知道这是完全错误的,但我想做这样的事情:

        SELECT 
FROM EmployeesTBL INNER JOIN ShiftsTBL ON EmployeesTBL.EmployeeID = ShiftsTBL.EmployeeID
WHERE 
Year(ShiftsTBL.Day)=[Enter Year]
AND 
Month(ShiftsTBL.Day)=[Enter Month]
;

在 SELECT 之后我需要写什么来获得所有班次的总和并将其除以 emp 工作的天数

注意:在班次表中,每个班次我都有EntryDateExitDate

【问题讨论】:

“所有班次的总和”是什么意思?您需要哪个字段来获得 SUM?员工的工作天数如何确定,Shifts 表中的记录是否满足此要求? 【参考方案1】:

Access 有一堆内置的日期函数。我相信月(日期)和年(日期)会给你你所需要的。

有点像

SELECT EmpName
FROM Employees, Shifts
WHERE Employees.EmployeeID = Shifts.EmployeeID
AND
Month(Shifts.Day) = INPUT2.VALUE
AND
Year(Shifts.Day) = INPUT1.VALUE

应该得到你想要的!

编辑:聚合:其工作方式取决于您的数据库的设置方式。我想我知道您想将工作时间相加并除以天数?

如果是这样,您将使用 Sum() 和 Count()。您将按 EmployeeID 分组

SELECT Sum(Shifts)/Count(DaysWorked) AS SumDividedByCount
FROM EmployeesTBL INNER JOIN ShiftsTBL 
 ON EmployeesTBL.EmployeeID = ShiftsTBL.EmployeeID
WHERE 
  Year(ShiftsTBL.[Day])=[Enter Year]
AND 
   Month(ShiftsTBL.[Day])=[Enter Month]
GROUP BY EmployeeID

我使用了 WHERE 子句,因为我认为结果需要在分组之前进行过滤。如果结果需要在分组后进行过滤,则将使用 HAVING 子句(并且会在 GROUP BY 之后)

【讨论】:

在 [Enter Year] 之后有一个额外的 ) 但请确保 Day 的字段名称包含在 [] 中,因为 Day 是保留字。抱歉,我之前没听清楚。 刚刚还注意到,您在 SELECT 之后需要一些东西。字段名称或 *(非首选)....

以上是关于计算员工的月薪的主要内容,如果未能解决你的问题,请参考以下文章

162天,我从腾讯外包月薪5K到转岗正式员工月薪15K,究竟经历了什么?

从腾讯外包月薪5K到转岗正式员工月薪15K,这178天的心酸只有自己知道...

从腾讯外包月薪5K到转岗正式员工月薪15K,这178天的心酸只有自己知道...

从腾讯外包月薪5K到转岗正式员工月薪15K,这178天的心酸只有自己知道...

oracle基础(第二节)

腾讯发布 2022 年季度财报,员工月薪 85473 元,网友看完炸了...