2011-11-08 30 views
0

我正在嘗試創建一個表,每個客戶都有最新的電影租賃日期。MAX()最新日期,無效對象

目前我有一個視圖涵蓋了大部分所需數據,除了每個客戶每部電影的返回日期之外,該信息位於一個名爲租金的表格中,我無法在FROM部分中參考該表格,因爲它與風景。

這是目前我所做的,但我不斷收到一些表上的無效的對象錯誤。如租賃和rental_view。

SELECT customer_name 
    , COUNT(DISTINCT rental_id) AS Number_of_Rentals 
    , latest_rental 
FROM Rental_view, 
(SELECT MAX(return_date) AS latest_rental FROM rentals) 
latest_rental 
GROUP BY customer_id, customer_name 
ORDER BY customer_id, customer_name 

不確定這裏有什麼問題,在正確的位置有第二個嵌入式SELECT語句,我正確使用它嗎?

這裏是上下文的問題。 「

」生成一個查詢,顯示所有客戶的客戶名稱,租金數量,最新租賃日期和平均租賃時間。「

更新後的代碼。

SELECT customer_name 
    , COUNT(DISTINCT r.rental_id) AS Number_of_Rentals 
    , MAX(r.return_date) AS latest_rental 
    , AVG(rv.rental_duration) AS AVG_Rental_duration 
FROM Rental_View AS rv JOIN rentals AS r 
    ON r.rental_id = rv.rental_ID 
GROUP BY rv.customer_id, customer_name 
ORDER BY rv.customer_id, customer_name 
+0

這是來自作業? – callisto

+0

是的,我完成了大部分工作......這只是我遇到的這些小小錯誤。這很令人沮喪。 – LewisFletch

+0

爲什麼你從兩個表中選擇而不加入結果?這不是正確的方法! 您需要在某些常用列上加入Rental_View和Latest_Rental才能獲得有意義的結果 – callisto

回答

0

使用customer_id在租賃和Rental_View之間執行JOIN
如果您只想在兩個表中包含具有customer_id的結果,請使用INNER JOIN

SELECT customer_name 
    , COUNT(DISTINCT r.rental_id) AS Number_of_Rentals 
    , MAX(r.return_date) AS latest_rental 
    , AVG(rv.rental_duration) AS AVG_Rental_duration 
FROM Rental_View AS rv 
INNER JOIN rentals AS r 
    ON r.rental_id = rv.rental_ID 
GROUP BY rv.customer_id, customer_name 
ORDER BY rv.customer_id, customer_name 

請張貼您的視圖的腳本以及。