2011-11-08 22 views
0

各顧客の最新の映画レンタルの日付を持つテーブルを作成しようとしています。MAX()最新の日付、無効なオブジェクト

現在のところ、顧客1人当たりの映画の返却日を除いて、ほとんどの必要なデータをカバーするビューがあります。この情報は、FROMセクションで参照できないレンタルテーブルにあります景色。

これは現在行っていることですが、一部のテーブルで無効なオブジェクトエラーが発生しています。レンタルやrent_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

なぜ結果を結合せずに2つのテーブルから選択しますか?それは正しい方法ではありません! 意味のある結果を得るために、いくつかの一般的な列に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 

View 'スクリプトも同様に投稿してください。

関連する問題