0

我现在得到了这样的选择语句:

  SELECT pernr reinr pdatv pdatb accdt pdvrs abrec FROM ptrv_perio
INTO CORRESPONDING FIELDS OF TABLE lt_ptrv_perio
WHERE ( abrec EQ '2'
        AND pdatv GE pa_begda
        AND pdatb LE pa_endda )
OR    ( abrec EQ '3'
        AND accdt GE pa_begda
        AND accdt LE pa_endda ).

问题是我的第二个条件的属性accdt在另一个表中。有没有办法我可以得到它并直接在 select 语句中使用它?我遇到的问题是,我无法在选择之前获得值,因为我在该选择中获得了正确的旅行 ID。

我希望我能够解释我的问题。感谢您的任何提示!:)

4

1 回答 1

0

以下代码解决了我的问题:

SELECT p~pernr p~reinr p~pdatv p~pdatb p~accdt p~pdvrs p~abrec
FROM ptrv_perio AS p INNER JOIN ptrv_head AS h ON p~reinr = h~reinr
INTO CORRESPONDING FIELDS OF TABLE lt_ptrv_perio
WHERE ( p~abrec EQ '2'
        AND p~accdt GE pa_begda
        AND p~accdt LE pa_endda )
OR    ( p~abrec EQ '3'
        AND h~dates GE pa_begda
        AND h~dates LE pa_endda ).

我从表 p 中选择,而 OR 语句中的标准来自表 h。希望这会对我以外的人有所帮助:)

于 2017-01-02T13:29:48.140 回答