如何计算升职的员工?

时间:2019-05-14 13:11:00

标签: sql ms-access access-vba ms-access-2010

我正试图弄清楚如何提出计算或查询来按每个薪酬期晋升的职级计算雇员人数。

*计算按薪级计算的等级价值记录的数量。

示例解决方案: 索恩:

  1. 年度工资核算期
  2. 2018 16 2
  3. 2019 6 1
  4. 2019 10 1

我已经尝试过在访问中进行透视和查询,但是我认为这需要有一个内部联接来识别获得晋升的特定员工。感谢您的协助。

excel中的

代码似乎有效,但由于记录数而需要在访问权限中转移。我认为内部连接将使这项工作有效。 =AND(B2<>B3,C2=C3,D3>D2)

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

基于 EXCEL ,您可以导出解决方案,假设您的记录按顺序排列在薪资员工成绩

添加另一列,以确定该特定工资核算期的成绩是否有所提高。

add column
出于Excel单元格引用的考虑,<< strong>年份”位于单元格 A1

将此列的第一个单元格的公式设置为false set 1st cell of new column to false

对于此新列中的下一个单元格,将其设置为: formula for checking grade increase
上面的代码检查该特定工资核算期的成绩是否有所提高。
依次对公式进行解释,依次为1. Check if year same (A3=A2)2. Check if Payroll Period is different(B3<>B2)3. Check if Employee is the same (C3=C2),最后是4. Check if there is a change in grade (D3=D2)
将此公式复制到其余范围。
fill formulas

下一步,您可以开始枢轴
使用以下命令从表/范围添加数据透视表 pivot fields
Grade Increase过滤为true,并将Employee的值聚合从Sum更改为Count
您将获得以下内容:
pivot table

我将重命名Count of Employees使其更有意义。 Field rename

上述方法的一个警告是,如果在一年的第一个Payroll Period年初提高了等级,则不会捕获该增加。为此,您可以从公式 A3 = A2 中删除年份支票。


编辑:

做一些研究,也许你可以做

select t1.*, (t1.Grade > t2.Grade) as Grade_Increase
from YourTableName t1 left join YourTableName t2 on
t1.Employee = t2.Employee and
(((t1.Year - 2018)*26) + t1.Payroll_Period) = 
(((t2.Year - 2018)*26) + t2.Payroll_Period - 1) -- -1 to get the prior record to compare grades

以上内容实际上是将表格与其自身相连。
“下一个顺序”的记录合并到同一行中。并进行比较。
在Access中未对此进行验证。
2018代替您的基准年。我正在使用2018计算记录的序号。最初,我想到了使用常见的表表达式,rank和row_number。但是访问似乎并不支持这些功能。