2016-04-10 8 views
1

私は、DVDテーブル(DVDID、タイトル、フォルト)とレンタルテーブル(RentalID、MemberID、DVDID、DateRented) 、DateReturned)。Microsoft Access:既にレンタルされているフォルトとムービーを除外してください

どの映画がレンタル可能かを決定するクエリを作成したいと考えています。これを行うには、DVDテーブル内の欠陥を含むDVDと、レンタルテーブルに戻されていないDVDを除外する必要があります。

DVDテーブルの「フォルト」列にコンテンツがあると、DVDに障害が発生することが知られています。フィールドが空の場合、DVDには障害はありません。 DVDは、レンタルテーブルの「DateReturned」フィールドにコンテンツがある場合に返されることが知られている。

これまでのところ、障害のあるDVDを除外してレンタルテーブルのDVDを除外していましたが、これを改善する必要があります。したがって、DateReturnedフィールドがNullの場合はレンタルテーブルのDVDのみが除外されます。

SELECT DVD.DVDID, DVD.Title, DVD.Rating, DVD.Genre, DVD.Released, DVD.RentalPeriod, DVD.Distributor, DVD.Faults 
FROM DVD 
WHERE (((DVD.Faults) Is Null) AND ((Exists (SELECT 1 FROM Rental WHERE Rental.DVDID = DVD.DVDID))=False)); 

誰でもどのように私はこれを達成するかもしれないアイデアがありますか?これはあなたに借りたが、まだ戻っていないされているDVDを示し仮定し

答えて

0

...

SELECT DVDID 
FROM Rental 
WHERE DateReturned Is Null; 

使用することをサブクエリとそれへLEFT JOINあなたDVDテーブルとして。 WHERE句で

SELECT 
    DVD.DVDID, 
    DVD.Title, 
    DVD.Rating, 
    DVD.Genre, 
    DVD.Released, 
    DVD.RentalPeriod, 
    DVD.Distributor, 
    DVD.Faults 
FROM 
    DVD 
    LEFT JOIN 
     (
      SELECT DVDID 
      FROM Rental 
      WHERE DateReturned Is Null 
     ) AS sub 
     ON DVD.DVID = sub.DVID 
WHERE 
     DVD.Faults Is Null 
    AND sub.DVID Is Null; 

DVD.Faults Is Nullは、障害を持つものを除外し、sub.DVID Is Nullは借りていない返却されたものを除きます。

+1

お返事ありがとうございます、完璧に動作します! – Crashbash111

関連する問題