2016-04-23 7 views
-2

私は2人のCTEを持っています。参加しようとすると「ORA-01789:」というメッセージが表示されます.2つのCTEをマージできますか?CTE参加時のエラー

WITH IMPORT_CTE 
AS ((select A.* 
FROM IMPORT_REGISTRY_ERROR_LOG_1 A 
INNER JOIN (select distinct POD_ID,CONFLICTED_POD_ID,ERROR_CODE 
      FROM IMPORT_REGISTRY_ERROR_LOG_1 
      GROUP BY POD_ID,CONFLICTED_POD_ID,ERROR_CODE 
      HAVING COUNT(*) > 1) B 
on A.POD_ID = B.POD_ID AND A.CONFLICTED_POD_ID = B.CONFLICTED_POD_ID AND A.ERROR_CODE = B.ERROR_CODE ) order by a.pod_id desc) 
select t1.* 
from IMPORT_CTE t1 
where t1.insert_date =(select max(t2.insert_date) 
         from IMPORT_CTE t2 
         where t2.POD_ID =t1.POD_ID) 


WITH IMPORT_CTE1 
AS ((select A.* 
FROM IMPORT_REGISTRY_ERROR_LOG_1 A 
INNER JOIN (select distinct POD_ID,CONFLICTED_POD_ID,ERROR_CODE 
      FROM IMPORT_REGISTRY_ERROR_LOG_1 
      GROUP BY POD_ID,CONFLICTED_POD_ID,ERROR_CODE 
      HAVING COUNT(*) > 1) B 
on A.POD_ID = B.POD_ID AND A.CONFLICTED_POD_ID = B.CONFLICTED_POD_ID AND A.ERROR_CODE = B.ERROR_CODE ) order by a.pod_id desc) 
select t1.insert_date 
from IMPORT_CTE1 t1 
where t1.insert_date =(select min(t2.insert_date) 
         from IMPORT_CTE1 t2 
         where t2.POD_ID =t1.POD_ID) 
+1

あなたの*希望する結果について教えてください。* –

+0

あなたはどのようにそれらに参加していますか? –

+0

@Prdp希望の結果が2つのクエリを結合しています。しかし、両方のクエリでフェッチされている列の数が異なるため、unionを使用して結合できません。 –

答えて

0

それぞれのクエリには、余分なセットがあります。最初のものは明らかに次のようなものでなければなりません:

WITH IMPORT_CTE AS 
     (select A.* 
     FROM IMPORT_REGISTRY_ERROR_LOG_1 A 
     INNER JOIN (select distinct POD_ID,CONFLICTED_POD_ID,ERROR_CODE 
         FROM IMPORT_REGISTRY_ERROR_LOG_1 
         GROUP BY POD_ID,CONFLICTED_POD_ID,ERROR_CODE 
         HAVING COUNT(*) > 1) B 
      on A.POD_ID = B.POD_ID AND 
       A.CONFLICTED_POD_ID = B.CONFLICTED_POD_ID AND 
       A.ERROR_CODE = B.ERROR_CODE 
     order by a.pod_id desc) 
select t1.* 
    from IMPORT_CTE t1 
    where t1.insert_date = (select max(t2.insert_date) 
          from IMPORT_CTE t2 
          where t2.POD_ID = t1.POD_ID) 

2番目のものにも同様の問題があります。

幸運のベスト。

関連する問題