Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Abap 如何检索具有最高版本号的数据?_Abap_Opensql - Fatal编程技术网

Abap 如何检索具有最高版本号的数据?

Abap 如何检索具有最高版本号的数据?,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

我使用下面的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_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升序对表进行排序,然后只读取第一个条目