2011-11-08 29 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 

请张贴您的视图的脚本以及。