2017-01-02 15 views
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? Проблема у меня есть, что я не могу получить значение перед выбором, потому что я получаю правильный идентификатор путешествия только в этом выборе.

Надеюсь, я смог объяснить свою проблему. Спасибо за любые подсказки! :)

+0

Видимо, вы не знакомы с концепцией объединения баз данных ...? – vwegert

+0

Я немного начинаю с этим. И я не был уверен, могу ли я использовать это здесь, потому что я использую это значение только из другой таблицы как условие, а не как результат выражения select. – Dyrdek

+0

@Dyrdek Я думаю, вам стоит попытаться описать вашу проблему немного шире –

ответ

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). 

Я выбрать из таблицы р, а по критериям в OR-заявление приходит из таблицы часов. Надеюсь, это поможет кому-то, кроме меня :)