Sql MAX()最新日期,无效对象
我正在尝试为每个客户创建一个表,其中包含电影租赁的最新日期 目前,我有一个视图,它涵盖了除每位客户每部电影的归还日期之外的大部分必需数据,该信息位于名为rentals的表中,我无法在FROM部分中引用该表,因为它与视图冲突 这是我目前所做的,但是我在一些表上不断得到一个无效的对象错误。例如租金和租金视图Sql MAX()最新日期,无效对象,sql,if-statement,getdate,Sql,If Statement,Getdate,我正在尝试为每个客户创建一个表,其中包含电影租赁的最新日期 目前,我有一个视图,它涵盖了除每位客户每部电影的归还日期之外的大部分必需数据,该信息位于名为rentals的表中,我无法在FROM部分中引用该表,因为它与视图冲突 这是我目前所做的,但是我在一些表上不断得到一个无效的对象错误。例如租金和租金视图 SELECT customer_name , COUNT(DISTINCT rental_id) AS Number_of_Rentals , latest_rental FROM R
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
不确定这里出了什么问题,a是否将第二个嵌入的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
使用客户id在rentals和Rental_视图之间进行连接。
如果只希望在两个表中都包含具有customer_id的结果,请使用内部联接
请同时发布您的视图脚本。是的,我已经完成了大部分工作。。。只是我不断遇到的这些小错误。这相当令人沮丧。为什么你从两个表中选择而不合并结果?这不是正确的方法!为了获得有意义的结果,您需要在一些公共列上加入Rental_视图和Latest_Rental。Rental_视图和Latest_Rental是否都有客户id?Rental_视图有客户id,Latest_Rental没有,因为它是为从Rental表中检索最新的_Rental日期而创建的列。rental表在rental_视图中使用,但当我尝试在不添加第二条SELECT语句的情况下包含Rentals时,我对rental_id有问题,因为它同时位于rental_视图和名为Rentals的表中。所以我的问题应该是:Rentals是否有客户id?
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