我有一个像这样的表格
kunnr date posnr
30001 28/5/2017 1
30001 25/5/2017 2
30001 15/5/2017 3
30001 25/4/2017 4
30001 20/4/2017 5
30002 15/5/2017 6
30002 25/4/2017 7
我希望每个新的 kunnr 都能获得每月最大日期的记录,即 5 月的最大值和 4 月的最大值等。
好的,我将对表循环进行排序,并为每个新的 kunnr ....我将如何获得每个月最大日期的记录?
提前致谢 伊莱亚斯
PS:我出错了,我意识到我没有得到我想要的。我在表格中有以下几行
0000527746 1000 10.06.2017 20170718100757.5010080
0000527746 1000 10.06.2017 20170718100757.5039300
0000527746 1000 11.06.2017 20170718100839.9209480
0000527746 1000 11.06.2017 20170718100906.3337170
0000527746 1000 24.07.2017 20170718095843.3555610
0000527746 1000 24.07.2017 20170718100209.2203570
0000527746 1000 24.07.2017 20170718100757.4970390
我想选择每个月的最后一天,即我希望选择给我带来以下几行
0000527746 1000 11.06.2017 20170718100906.3337170
0000527746 1000 24.07.2017 20170718100757.4970390
我使用以下sql
select bukrs kunnr dat max( time ) as time
from zcollectoraction into corresponding fields of table it_collectoraction
where bukrs = p_bukrs and
kunnr in so_kunnr and
dat in so_date
group by bukrs kunnr dat.
但它显示以下行
0000527746 1000 11.06.2017 20170718100906.3337170
0000527746 1000 11.06.2017 20170718100906.3337170
0000527746 1000 24.07.2017 20170718100757.4970390
为了每月有 1 条线,该怎么办?
谢谢 伊莱亚斯
为什么不在从数据库选择期间使用聚合函数?循环内部表更有效。
SELECT k~bukrs_vf, k~kunnr, k~erdat, MAX( p~posnr ) AS T
FROM vbak AS k
JOIN vbap AS p
ON k~vbeln = p~vbeln
INTO TABLE @DATA(lt_result)
GROUP BY bukrs_vf, kunnr, k~erdat
ORDER BY bukrs_vf.
请注意,上面的查询将仅选择那些在vbap
中具有相应位置的 kunnrs。