需求:

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

方法:

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

表内数据

人员编号

考核年度

季度

评估得分

评级

1

2021

1

100

A

1

2021

2

100

A

1

2021

3

100

A

1

2021

4

100

A

2

2021

1

100

A

2

2021

2

100

A

2

2021

3

100

A

2

2021

4

100

A

期望结果

人员编号

考核年度

季度

评估得分

评级

1

2021

3

100

A

1

2021

4

100

A

2

2021

3

100

A

2

2021

4

100

A

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)
.

弊端:

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

人员编号

考核年度

季度

评估得分

评级

1

2021

1

100

A

1

2021

2

100

A

1

2021

3

100

A

1

2021

4

100

A

2

2021

1

100

A

2

2021

2

100

A

2

2021

3

100

A

2

2021

4

100

A

2

2021

4

110

S

结果

人员编号

考核年度

季度

评估得分

评级

1

2021

3

100

A

1

2021

4

100

A

2

2021

4

110

S

2

2021

4

100

A

扩展:

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

备注:

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