0

我正在尝试创建一个表,其中包含每个客户的最新电影租赁日期。

目前,我的视图涵盖了除每位客户的每部电影的返回日期之外的大部分所需数据,此信息位于名为“租金”的表中,我无法在 FROM 部分中引用该表,因为它与 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  
4

1 回答 1

0

JOIN使用 customer_id 在租金和 Rental_View 之间进行操作。
如果您只想在两个表中包含具有 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  

请同时发布您的视图脚本。

于 2011-11-08T09:35:45.737 回答