0

各顧客の映画レンタルの最新日付を含むテーブルを作成しようとしています。

現在、顧客ごとの各映画の返却日を除いて、必要なデータのほとんどをカバーするビューがあります。この情報はレンタルと呼ばれるテーブルにあり、VIEW と競合するため FROM セクションで参照できません。

これは現在私が行ったことですが、いくつかのテーブルで無効なオブジェクトエラーが発生し続けます。Rentals や 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

ここで何が問題なのかわかりません。正しい場所に 2 つ目の 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

JOINcustomer_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 に答える