我现在收到了这样的选择声明:
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。
我希望我能够解释我的问题。谢谢你的任何提示! :)
答案 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。 希望这会帮助除了我以外的人:)