我正试图弄清楚如何提出计算或查询来按每个薪酬期晋升的职级计算雇员人数。
*计算按薪级计算的等级价值记录的数量。
示例解决方案: 索恩:
我已经尝试过在访问中进行透视和查询,但是我认为这需要有一个内部联接来识别获得晋升的特定员工。感谢您的协助。
excel中的代码似乎有效,但由于记录数而需要在访问权限中转移。我认为内部连接将使这项工作有效。 =AND(B2<>B3,C2=C3,D3>D2)
答案 0 :(得分:1)
基于 EXCEL ,您可以导出解决方案,假设您的记录按顺序排列在年,薪资,员工和成绩。
添加另一列,以确定该特定工资核算期的成绩是否有所提高。
出于Excel单元格引用的考虑,<< strong>年份”位于单元格 A1
对于此新列中的下一个单元格,将其设置为:
上面的代码检查该特定工资核算期的成绩是否有所提高。
依次对公式进行解释,依次为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)
。
将此公式复制到其余范围。
下一步,您可以开始枢轴。
使用以下命令从表/范围添加数据透视表
将Grade Increase
过滤为true
,并将Employee
的值聚合从Sum
更改为Count
。
您将获得以下内容:
我将重命名Count of Employees
使其更有意义。
上述方法的一个警告是,如果在一年的第一个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。但是访问似乎并不支持这些功能。