2016-07-07 116 views
0

我的下列查詢激發錯誤消息「錯誤:ORA-00905:缺少關鍵字」,但與SQLite一起工作。我找不到錯誤。ORACLE SQL:缺少關鍵字

WITH subA AS (

SELECT customer.first_name, customer.last_name, customer.store_id, film_id from 
    (SELECT customer_id, film_id from inventory join 
     (SELECT rental.customer_id, rental.inventory_id from rental join 
      (select customer_id, substr(first_name, 1, 1), substr(last_name, 1, 1) from customer where substr(first_name, 1, 1) = substr(last_name, 1, 1) AND customer.store_id = 2) as subResults 
     on subResults.customer_id = rental.customer_id) as subResults2 
    on inventory.inventory_id = subResults2.inventory_id) as finalsubR 
join customer on customer.customer_id = finalsubR.customer_id 

), 

filmResults AS (

select * from (select title, rating, inventory.film_id, inventory_id from inventory join film on inventory.film_id = film.film_id) where rating = 'PG' 

) 

select distinct first_name, last_name, store_id from subA join filmResults on subA.film_id = filmResults.film_id ORDER by last_name 
+0

Oracle不支持用於表別名的「AS」。使用'finalsubR'而不是'finalsubR' –

+0

我應該改變什麼? – traineeme

+1

對不起,複製並粘貼錯誤;)刪除'AS' keyowrd:'finalsubR'而不是'finalsubR' –

回答

1

試試這個,.. Oracle不支持AS作爲表別名。

WITH subA AS 
     (SELECT customer.first_name 
       ,customer.last_name 
       ,customer.store_id 
       ,film_id 
     FROM (SELECT customer_id 
         ,film_id 
       FROM inventory 
         JOIN (SELECT rental.customer_id 
            ,rental.inventory_id 
          FROM rental 
            JOIN (SELECT customer_id 
               ,SUBSTR(first_name, 1, 1) 
               ,SUBSTR(last_name, 1, 1) 
              FROM customer 
              WHERE SUBSTR(first_name, 1, 1) = SUBSTR(last_name, 1, 1) 
              AND customer.store_id = 2) subResults 
             ON subResults.customer_id = rental.customer_id) subResults2 
         ON inventory.inventory_id = subResults2.inventory_id) finalsubR 
       JOIN customer ON customer.customer_id = finalsubR.customer_id) 
    ,filmResults AS 
     (SELECT * 
     FROM (SELECT title 
         ,rating 
         ,inventory.film_id 
         ,inventory_id 
       FROM inventory JOIN film ON inventory.film_id = film.film_id) 
     WHERE rating = 'PG') 
SELECT DISTINCT first_name 
       ,last_name 
       ,store_id 
FROM  subA JOIN filmResults ON subA.film_id = filmResults.film_id 
ORDER BY last_name