选择2个字段的最大值

问题描述 投票:0回答:1

我有一个包含BUKRS,GJAHR,MONAT的表,我想选择MAX GJAHR和MONAT如下:

SELECT MAX( concat( gjahr, monat ) ) AS year_monat
      FROM zfiou_percentage
        INTO data(lv_year_month)
      WHERE bukrs = '5555' AND
            concat( gjahr, monat ) <= '202001'
      GROUP BY year_monat.

所以表中有:

BUKRS  GJAHR  MONAT
5555   2019   09   
5555   2019   10  
5555   2019   11  
5555   2020   02  

我如何获得5555 2019 11行?

sap abap
1个回答
1
投票
仅按7.50的版本,如documentation所示,只能按计划将两列连接在一起。您的版本是什么?

如果无法正常运行或没有所需的ABAP版本,则可以尝试以下操作。我没有亲自尝试过它,而是伪代码,但是应该可以。有关更多信息,请阅读subqueries

DATA lt_result TYPE TABLE OF zfiou_percentage. SELECT * FROM zfiou_percentage INTO TABLE lt_result WHERE bukrs = gs_selections-p_bukrs AND gjahr >= ALL ( SELECT gjahr FROM zfiou_percentage ) AND monat >= ALL ( SELECT monat FROM zfiou_percentage WHERE gjahr >= ALL ( SELECT gjahr FROM zfiou_percentage ) ).

说明:

    选择所有数据集
  • z表的
  • 放入itab(因为可能有多行具有相同的最大gjahr和month)
  • 其中:
    1. 正常情况
  • 并且年份是z表中所有年份中最高的年份
  • 并且月份是年份最高的所有数据集中月份中最高的月份>>
© www.soinside.com 2019 - 2024. All rights reserved.