这是我希望在AFRU表格中选择的数据样本.
+----------------------+-----------------+-------------------------+
| Confirmation (RUECK) | Counter (RMZHL) | Finish Execution (IEDD) |
+----------------------+-----------------+-------------------------+
| 30116 | 1 | 08/26/2014 |
| 30116 | 2 | 08/27/2014 |
| 30116 | 3 | 09/27/2013 |
+----------------------+-----------------+-------------------------+
Run Code Online (Sandbox Code Playgroud)
给定这个数据集,我想选择最后一行,因为它包含最高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.
Run Code Online (Sandbox Code Playgroud)
然而,这个选择始终网我的价值观1了lv_rmzhl,并且20140826为lv_iedd,因此没有得到MAX像我试图获得价值.我明白,通过将所有内容放入内部表格并对RMZHL字段进行排序可以轻松完成,但我正在寻找更合适的方法.
小智 6
您可以执行以下子选择:
SELECT SINGLE iedd
FROM afru
INTO @DATA(lv_iedd)
WHERE rueck = '0000030116'
AND rmzhl = ( SELECT MAX( rmzhl ) FROM afru WHERE rueck = '0000030116' ).
Run Code Online (Sandbox Code Playgroud)
我已经在很多情况下使用它,即使与它结合使用FOR ALL ENTRIES,性能差异也很小.
| 归档时间: |
|
| 查看次数: |
10867 次 |
| 最近记录: |