ABAP 分组取最新的2条记录

需求:

取出表中ZHR_KHND相等中最新的2条记录

方法:

先对"主键"进行分组,然后分组后取最大的2条

表内数据

人员编号考核年度季度评估得分评级
120211100A
120212100A
120213100A
120214100A
220211100A
220212100A
220213100A
220214100A

期望结果

人员编号考核年度季度评估得分评级
120213100A
120214100A
220213100A
220214100A

CODE

  SELECT
    PA9502_1~PERNR,
    PA9502_1~ZHR_KHND,
    PA9502_1~ZHR_PJJJ
    FROM PA9502 AS PA9502_1
   WHERE 2 GE (
      SELECT COUNT(*)
        FROM PA9502 AS PA9502_2
       WHERE PA9502_2~PERNR EQ PA9502_1~PERNR
         AND PA9502_2~ZHR_KHND EQ PA9502_1~ZHR_KHND
         AND PA9502_2~ZHR_PJJJ GE PA9502_1~ZHR_PJJJ
    )
    ORDER BY PA9502_1~PERNR,PA9502_1~ZHR_KHND DESCENDING
    INTO TABLE @DATA(LT_PA9502_2)
    .

弊端:

对于如果年度有相同的,则可能会有问题,比如

人员编号考核年度季度评估得分评级
120211100A
120212100A
120213100A
120214100A
220211100A
220212100A
220213100A
220214100A
220214110S

结果

人员编号考核年度季度评估得分评级
120213100A
120214100A
220214110S
220214100A

扩展:

如果是取第3条吧2改成3即可

备注:

以上数据和规则都是随意填的,仅作为测试样例

posted @   linhuang  阅读(46)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示