Полностью SQL-новичок, пытающийся преобразовать один из моих R-запросов в запрос Oracle SQL - извинения, если я получу терминологию неправильно, но я попытаюсь быть явным.Oracle Left соединяется между датами двух разных схем
Использование Oracle SQL Developer 4.0.3.16 для Windows.
Я пытаюсь объединить таблицы («VMS» и «TRIP») из двух разных схем (schA и schB) на основе диапазона дат и идентификатора разрешения. Я хочу сделать левое соединение (сохранить все строки из schA.VMS и только поле TRIP_JOIN из schB ... оставляя NA в поле TRIP_JOIN, когда даты не совпадают).
описание двух schemas.table:
describe schA.VMS
Name Null Type
----------------- -------- -----------
PERMIT NUMBER(6)
POSITION_DATETIME NOT NULL DATE
LATITUDE NOT NULL NUMBER(9,6)
LONGITUDE NOT NULL NUMBER(9,6)
describe schB.TRIP
Name Null Type
-------------------------- -------- ------------
PERMIT NOT NULL VARCHAR2(6)
TRIP_JOIN NOT NULL NUMBER
TRIP_START DATE
TRIP_END DATE
Я пытался различные версии кода ниже
alter session set nls_date_format = 'mm/dd/yyyy HH24:MI'
SELECT schA.VMS.*,TRIP_JOIN FROM schA.VMS
LEFT JOIN schA.VMS
ON schA.VMS.POSITION_DATETIME BETWEEN
to_date(schB.TRIP.TRIP_START) AND to_date(schB.TRIP.TRIP_END)
WHERE to_char(schA.VMS.PERMIT) = schB.TRIP.PERMIT
Я получаю сообщение об ошибке. Я предполагаю, что я не могу определить, какие аспекты, но я не могу понять, какой аспект!
ORA-00904: "schB"."TRIP"."TRIP_END": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Error at Line: 20 Column: 115
Я попытался выяснить, как обеспечить воспроизводимый пример, но мои навыки Oracle еще не совсем там. Извиняюсь, и, надеюсь, мои ошибки достаточно очевидны без этого!
Я нашел сообщения SO для разных частей моего вопроса, но я не мог найти другого, что бы устранить пробелы.
Заранее благодарен!
Ваш запрос выполняет автообъединение на 'schA.VMS' (' FROM schA.VMS' и 'LEFT JOIN schA.VMS'). Вы вообще не присоединяетесь к 'schB.TRIP', поэтому вы не можете ссылаться на эту таблицу. Проверьте свои 'from' и' join' предложения. Кроме того, вы можете значительно упростить свой запрос, используя псевдонимы таблиц. – sstan
Downvotes гораздо более конструктивны, когда сопровождаются объяснением, поэтому новички, подобные мне, могут улучшить будущие вопросы. Благодаря! – Jordan