0

映画レンタル ビジネス用のサンプル データベースがあります。現在売り切れている映画のタイトルをすべて検索するクエリを作成しようとしています。

  • その映画のすべての DVD は現在レンタルされています。または...
  • その映画のDVDはありません

このクエリでは、在庫にはあるがレンタル テーブルには表示されていない DVD がキャプチャされないようにする必要があることに注意してください。

編集:これは私がこれまでに持っているものですが、上記の行のシナリオを説明することはできません^.

SELECT Count(DvdID) AS Inventory, Movie.Title
FROM Dvd
JOIN Movie on Dvd.MovieID = Movie.MovieID
WHERE Dvd.DvdID IN
    (SELECT RentalID
    FROM Rental
    WHERE Rental.ReturnDate IS NULL)
OR Dvd.DvdID NOT IN
    (SELECT Dvd.DvdID
    FROM Dvd
    WHERE DvdID NOT IN
    (SELECT Rental.DvdID FROM RENTAL)
    )

GROUP BY Movie.Title

表:

映画

-映画ID

-映画のタイトル

DVD

-DVDID

-映画ID

レンタル

-レンタルID

-DVDID

-アカウントID

-レンタル日

-返品日

4

1 に答える 1

0

最初のサブクエリの間違いを修正する必要があるだけです-すべきではありDvdIDませんRentalID。このクエリは私にとってはうまくいきますが、あなたにとってはうまくいきますか?

クエリ:

SELECT Count(DvdID) AS Inventory, MovieTitle
FROM Dvd
JOIN Movie on Dvd.MovieID = Movie.MovieID
WHERE Dvd.DvdID IN
    (SELECT DvdID
    FROM Rental
    WHERE Rental.ReturnDate IS NULL)
OR Dvd.DvdID NOT IN
    (SELECT Dvd.DvdID
    FROM Dvd
    WHERE DvdID NOT IN
    (SELECT Rental.DvdID FROM RENTAL)
    )
GROUP BY MovieTitle
于 2012-10-13T15:42:17.797 に答える