我正在 MS Access 2010 中处理我的数据库
我需要建立一个查询来计算每个员工的月工资
它是这样的:
来自用户的输入,哪xx年
从用户再次输入,哪个月
显示输入日期的每位员工的工资
查询中有 2 个表:Shifts
,Employees
移位具有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]
;
选择后我需要写什么才能得到所有班次的总和,并将其除以 emp 工作的天数
注意:在轮班表中,我有EntryDate
和ExitDate
每个班次
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 子句,因为我认为结果需要在分组之前进行过滤。如果结果需要在分组后进行过滤,则将使用 HING 子句(并且将在 GROUP BY 之后)
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(80条)