Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何统计已晋升的员工?_Sql_Vba_Ms Access - Fatal编程技术网

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,您可以推导出您的解决方案,假设您的

我想弄清楚如何计算或查询每个发薪期晋升的员工数量

*计算按薪期增加的等级价值记录数

样品溶液: 解决方案:

  • 年度工资期盘点
  • 2018年16 2
  • 2019 6 1
  • 2019年10月1日
  • 我在access中尝试了pivot和查询,但我认为这需要有一个内部连接,以确定获得提升的特定员工。谢谢你的帮助

    excel中的代码,该代码似乎可以工作,但由于记录的数量,需要在access中传输。我认为内部连接将使这项工作<代码>=和(B2B3,C2=C3,D3>D2)


    基于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)我认为内部连接可以使用它。如果你能帮忙的话,打电话给所有的访问大师。提前谢谢!