Abap 如何检索具有最高版本号的数据?
我使用下面的sql加入DRAT&DRAPAbap 如何检索具有最高版本号的数据?,abap,opensql,Abap,Opensql,我使用下面的sql加入DRAT&DRAP SELECT * INTO CORRESPONDING FIELDS OF WA_DOC_LOG FROM DRAP INNER JOIN DRAT ON DRAP~DOKNR = DRAT~DOKNR AND DRAP~DOKAR = DRAT~DOKAR WHERE DRAP~DOKNR IN S_DOKNR AND DRAP~DOKAR IN S_DOKAR AND DRAP~DOKST IN S_DOKST AND DRAP~DATUM IN S
SELECT * INTO CORRESPONDING FIELDS OF WA_DOC_LOG
FROM DRAP
INNER JOIN DRAT ON DRAP~DOKNR = DRAT~DOKNR
AND DRAP~DOKAR = DRAT~DOKAR
WHERE DRAP~DOKNR IN S_DOKNR
AND DRAP~DOKAR IN S_DOKAR
AND DRAP~DOKST IN S_DOKST
AND DRAP~DATUM IN S_DATUM.
但是当我显示时,我只想显示版本号最高的记录(DRAP~DOKVR)。消除低版本记录的可能方法是什么?我可能会:
使用SQL实现这一点可能是可能的,但我会非常小心,因为如果做得不对,这可能会非常昂贵。我可能会:
使用SQL实现这一点可能是可能的,但我会非常小心,因为如果做得不对,这可能会非常昂贵。试试下面的SELECT语句:
SELECT *
INTO CORRESPONDING FIELDS OF TABLE WA_DOC_LOG
FROM DRAP AS d
INNER JOIN DRAT AS t
ON d~DOKNR = t~DOKNR
AND d~DOKAR = t~DOKAR
WHERE d~dokvr = ( SELECT max( dokvr ) FROM drap ).
虽然,它不是很高效,但功能还没有完全发挥出来。你应该考虑你自己的具体系统的性能。 < P>试试这个SELECT语句:
SELECT *
INTO CORRESPONDING FIELDS OF TABLE WA_DOC_LOG
FROM DRAP AS d
INNER JOIN DRAT AS t
ON d~DOKNR = t~DOKNR
AND d~DOKAR = t~DOKAR
WHERE d~dokvr = ( SELECT max( dokvr ) FROM drap ).
虽然,它不是很高效,但功能还没有完全发挥出来。你应该自己考虑具体系统的性能。也许聚合函数可以帮助你。之后,我将使用dokvar升序对表进行排序,然后只读取第一个EntryAggregate函数,也许聚合函数可以帮助您实现这一点。之后,我将使用dokvar升序对表进行排序,然后只读取第一个条目