在多个相关字段上选择 MAX

Selecting MAX over multiple dependent fields

这是我希望 select 来自 AFRU table 的数据示例。

+----------------------+-----------------+-------------------------+
| Confirmation (RUECK) | Counter (RMZHL) | Finish Execution (IEDD) |
+----------------------+-----------------+-------------------------+
|                30116 |               1 | 08/26/2014              |
|                30116 |               2 | 08/27/2014              |
|                30116 |               3 | 09/27/2013              |
+----------------------+-----------------+-------------------------+

鉴于此数据集,我想要 select 最后一行,因为它包含最高 RMZHL 值(我真的只在该记录的 IEDD 值之后).这是我一直在尝试使用的代码:

SELECT MAX( rmzhl ), iedd FROM afru
                          INTO (@DATA(lv_rmzhl), @DATA(lv_iedd))
                          WHERE rueck = '0000030116'
      GROUP BY rmzhl, iedd.
      ...
      <some fancy code here>
      ...
ENDSELECT.

然而,这个 selection 总是让我得到 lv_rmzhl 的值 1lv_iedd20140826,因此没有得到 MAX 就像我试图获得的价值。我知道他可以通过将其全部放入内部 table 并在 RMZHL 字段上排序来轻松完成,但我正在寻找更合适的方法。

您可以像这样进行子选择:

SELECT SINGLE iedd
  FROM afru
  INTO @DATA(lv_iedd)
  WHERE rueck = '0000030116'
    AND rmzhl = ( SELECT MAX( rmzhl ) FROM afru WHERE rueck = '0000030116' ).

我已经在很多情况下使用它,甚至与 FOR ALL ENTRIES 结合使用,性能差异非常小。