查询两个相关表的标准

时间:2017-01-02 10:57:35

标签: select sap abap opensql

我现在收到了这样的选择声明:

  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。

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

1 个答案:

答案 0 :(得分: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。 希望这会帮助除了我以外的人:)