sql表达式将查询替换为不匹配查询的sql生成



我有两个查询,其中qryAvailability1返回阻止预订的日期,而qryAvailability2在进行任何预订之前生成完全可用的日期。

我将它们组合在最后的"无匹配"查询中,以定义可用的预订日期:

qryAvailability1:

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

qryAvailability2:

选择tblProperties.PropertyID,tblDates.DateFROM tbl属性,tbl日期;

最后一个"无匹配"查询:

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;

有没有办法将一个查询语句转换为一个查询而不是三个查询?

换句话说,我需要将对qryAvailability1qryAvailability2的引用替换为生成它们的sql语句(无论我尝试了什么都不起作用)。

假设您的最终查询有效(我还没有检查它),那么将这三者结合起来:

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;

最新更新