最近SQL StudioからOracleにデータベースを移動しなければならなかったので、使用する必要があるすべての構文について学習しています。Oracle SQL Developer - 2つのテーブルを同時に照会できない
とにかく私は実行しようとしているクエリが永遠に(> 15分)実行され、決して終了しないような問題に遭遇しました。
ご覧のとおり、Withステートメントを使用して2つのtempを作成します。私のクエリを実行するテーブル。これらのテーブルのいずれかを個別に照会すると、結果は< 2秒になります。 From文で他のテーブルを追加するとすぐに何もしないように見えます。
は、このクエリは正常に動作します:
With Laser as
(
SELECT Data.Serial_Number, Equipment.Equipment_Desc, Data.SCAN_TIME,
ROW_NUMBER() OVER (PARTITION BY Data.Serial_Number, Equipment.Equipment_SN
ORDER BY Equipment.Equipment_SN) AS RN
FROM Data, Equipment
where Data.Equipment_Station = Equipment.Equipment_SN and Equipment.Equipment_Desc like '%laser Etch%'
)
,AssyQC AS
(
SELECT Data.Serial_Number, Equipment.Equipment_Desc,Data.SCAN_TIME,
ROW_NUMBER() OVER (PARTITION BY Data.Serial_Number, Equipment.Equipment_SN
ORDER BY Equipment.Equipment_SN) AS RN
FROM Data, Equipment
where Data.Equipment_Station = Equipment.Equipment_SN and Equipment.Equipment_Desc like '%QSMC SI%'
)
select to_char(Laser.SCAN_TIME, 'mm') as "Laser Month", to_char(Laser.SCAN_TIME, 'dd') as "Laser Day"
from Laser
;
を今、私は声明からに他のテーブルを追加する場合、私はどこか他の(選択し、どこで、など)クエリはdoesnのそれを使用していないにもかかわらず、何もしない。実行して実行します。
With Laser as
(
SELECT Data.Serial_Number, Equipment.Equipment_Desc, Data.SCAN_TIME,
ROW_NUMBER() OVER (PARTITION BY Data.Serial_Number, Equipment.Equipment_SN
ORDER BY Equipment.Equipment_SN) AS RN
FROM Data, Equipment
where Data.Equipment_Station = Equipment.Equipment_SN and Equipment.Equipment_Desc like '%laser Etch%'
)
,AssyQC AS
(
SELECT Data.Serial_Number, Equipment.Equipment_Desc,Data.SCAN_TIME,
ROW_NUMBER() OVER (PARTITION BY Data.Serial_Number, Equipment.Equipment_SN
ORDER BY Equipment.Equipment_SN) AS RN
FROM Data, Equipment
where Data.Equipment_Station = Equipment.Equipment_SN and Equipment.Equipment_Desc like '%QSMC SI%'
)
select to_char(Laser.SCAN_TIME, 'mm') as "Laser Month", to_char(Laser.SCAN_TIME, 'dd') as "Laser Day"
from Laser, AssyQC
;
このクエリはSQL Studioで正常に機能しました。
あなたがすべてでそれを含めて、しかし、あなたはちょうどこの例では、それらを含めていないと仮定している理由は、最終的なselect
でAssyQC
から任意の列をなし
マイクとジェフのおかげです。それは私の見解であった。私はもともとWhere句を2つのテーブルにまとめていましたが、別の構文問題の根本原因を見つけようとしました。それから、この問題を解決しようとしているときにそれを戻すのを忘れてしまった。 実際のクエリは、両方のテーブルを使用するselectステートメントにもっと多くの情報を持っています。 – AFJ