计算员工的月薪
Posted
技术标签:
【中文标题】计算员工的月薪【英文标题】:calculating month salary for an employee 【发布时间】:2014-06-03 18:52:32 【问题描述】:我正在使用 MS Access 2010 处理我的数据库
我需要建立一个查询来计算每个员工的月薪
它是这样的:
-
用户输入,年份
用户再次输入,哪个月
显示输入日期每个员工的工资
查询中有2个表:Shifts
,Employees
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 工作的天数
注意:在班次表中,每个班次我都有EntryDate
和ExitDate
【问题讨论】:
“所有班次的总和”是什么意思?您需要哪个字段来获得 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天的心酸只有自己知道...