Sql 如何统计已晋升的员工?
我想弄清楚如何计算或查询每个发薪期晋升的员工数量 *计算按薪期增加的等级价值记录数 样品溶液: 解决方案:Sql 如何统计已晋升的员工?,sql,vba,ms-access,Sql,Vba,Ms Access,我想弄清楚如何计算或查询每个发薪期晋升的员工数量 *计算按薪期增加的等级价值记录数 样品溶液: 解决方案: 年度工资期盘点 2018年16 2 2019 6 1 2019年10月1日 我在access中尝试了pivot和查询,但我认为这需要有一个内部连接,以确定获得提升的特定员工。谢谢你的帮助 excel中的代码,该代码似乎可以工作,但由于记录的数量,需要在access中传输。我认为内部连接将使这项工作=和(B2B3,C2=C3,D3>D2) 基于EXCEL,您可以推导出您的解决方案,假设您的
基于EXCEL,您可以推导出您的解决方案,假设您的记录在年度、工资单、员工和等级列中按顺序排列 添加另一列以确定该特定工资期是否有等级增加
为便于excel单元格参考,“年”位于单元格A1 将此列第一个单元格的公式设置为
false
对于此新列中的下一个单元格,将其设置为:
以上检查该特定工资期是否有等级增加
该公式的解释顺序如下:
1。检查年份是否相同(A3=A2)
,2。检查工资周期是否不同(B3B2)
,3。检查员工是否相同(C3=C2)
最后是4。检查等级是否有变化(D3=D2)
将此公式复制到您的其他范围。
下一步,您可以开始转动轴
使用以下命令从表/范围中添加数据透视表
过滤
等级增加
为真
,并将员工
的值聚合从总和
更改为计数
您将获得以下信息:
我会重新命名
countofemployees
,使其更有意义。
上述方法的一个警告是,如果在该年第一个工资期开始时增加了该职等,则不会计入该增加。为此,您可以从公式中删除年度检查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
计算记录的序列号。最初我考虑使用常用的表表达式、秩和行号。但是access似乎不支持这些功能。非常感谢!这将是可行的,但是,我正在处理大约83万行数据。。是否有办法将其放入access?同样,Sam,这显示的是从上一期开始而不是从本期开始的等级增加。e、 g.如果员工在03期间从00期间获得晋升,则在00期间显示为真,但我不能执行-1期间,因为该期间不同。。无论如何要解决这个问题?我不熟悉访问权限。关于第二个问题,00到03之间的记录如何?如果中间没有记录,我相信数据排序会使00和03相邻,即按顺序排列?我确实说过,为了让它工作,数据需要按顺序排列。谢谢Sam。这段代码对我来说工作得更好,但我在access中需要它。=和(B2B3,C2=C3,D3>D2)我认为内部连接可以使用它。如果你能帮忙的话,打电话给所有的访问大师。提前谢谢!