1

qryAvailability1返品日が予約のためにブロックされている一方でqryAvailability2、予約が行われる前に完全に利用可能な日付を生成する 2 つのクエリがあります。

最後の「一致しない」クエリでそれらを組み合わせて、予約可能な日付を定義します。

qryAvailability1:

SELECT tblReservations.PropertyID, tblDates.Date
FROM tblReservations, tblDates
WHERE (((tblDates.Date) Between [tblReservations]![CheckIn] And [tblReservations]![CheckOut]));

qryAvailability2:

tblProperties.PropertyID、tblDates.Date FROM tblProperties、tblDates; を選択します。

最後の「一致しない」クエリ:

SELECT qryAvailability2.PropertyID, qryAvailability2.Date
FROM qryAvailability2 LEFT JOIN qryAvailability1 ON (qryAvailability2.Date=qryAvailability1.Date) AND (qryAvailability2.PropertyID=qryAvailability1.PropertyID)
WHERE (((qryAvailability1.Date) Is Null))
ORDER BY qryAvailability2.PropertyID, qryAvailability2.Date;

1 つのクエリ ステートメントを 3 つではなく 1 つのクエリにする方法はありますか?

qryAvailability1つまり、それらを生成する sql ステートメントへの参照と参照を置き換える必要がありqryAvailability2ます (何を試してもまったく機能しませんでした)。

4

1 に答える 1

1

あなたの最終的なクエリが機能すると仮定すると(私はそれをチェックしていません)、3つすべてを組み合わせるには:

SELECT qryAvailability2.PropertyID, qryAvailability2.Date
FROM (
SELECT tblProperties.PropertyID, tblDates.Date FROM tblProperties, tblDates
) qryAvailability2 LEFT JOIN (
SELECT tblReservations.PropertyID, tblDates.Date
FROM tblReservations, tblDates
WHERE (((tblDates.Date) Between [tblReservations]![CheckIn] And [tblReservations]![CheckOut]))
) qryAvailability1 ON (qryAvailability2.Date=qryAvailability1.Date) AND (qryAvailability2.PropertyID=qryAvailability1.PropertyID)
WHERE (((qryAvailability1.Date) Is Null))
ORDER BY qryAvailability2.PropertyID, qryAvailability2.Date;
于 2013-07-12T16:40:47.670 に答える