Rのクエリの1つをOracle SQLクエリに変換しようとする完全なSQL初心者 - 謝辞が誤っている場合は謝罪しますが、明示的にしようとします。Oracle日付の異なる2つの異なるスキーマへの結合
WindowsでのOracle SQL Developer 4.0.3.16の使用。
私は、日付範囲と許可IDに基づいて2つの異なるスキーマ(schAとschB)からテーブル(「VMS」と「TRIP」)を結合しようとしています。私は左結合をしたい(schA.VMSからすべての行を保持し、schBからTRIP_JOINフィールドだけを残す...日付が一致しないときにTRIP_JOINフィールドにNAを残す)。 2 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
私は再現可能な例を提供する方法を理解しようとしましたが、私のオラクルのスキルはあまりまだありません。謝罪し、うまくいけば私の間違いは十分に明らかである!
私の質問のさまざまな部分のためのSOの投稿が見つかりましたが、私はギャップをかなりブリッジした別のものを見つけることができませんでした。
ありがとうございます!ルークの答えとsstanさんのコメントからアドバイスを組み合わせる
あなたのクエリは、自己を実行している(schA.VMS'と 'LEFT schA.VMS'のJOIN FROM') 'schA.VMS'に参加します。あなたは 'schB.TRIP'に全く参加していないので、そのテーブルを参照することはできません。 'from'と' join'節を確認してください。また、テーブルのエイリアスを使用すると、クエリを大幅に簡素化できます。 – sstan
私のような初心者が将来の質問を改善できるように、ダウンボートは説明を伴ってはるかに建設的です。ありがとう! – Jordan