2016-04-23 33 views
-2

我有2個CTE.When當我嘗試加入他們時,我收到一條錯誤消息「ORA-01789:」.how我可以合併2個CTE.I是否有其他方式來獲得所需的結果?加入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期望的結果是加入這兩個queries.but但我不能加入使用聯合作爲在兩個查詢中提取的列數是不同的 –

回答

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) 

第二個也有類似的問題。

祝你好運。