我正在尝试构建具有多个条件的访问查询。要查询的表是“tblVendor”,其中包含有关供应商发货数据的信息,如下所示:
第二个表是“tblSchedule”,其中包含每个供应商截止日期的时间表。该表有数据分析的截止日期。
对于每个供应商,我需要选择 ShipDate >= CutoffDate 的记录。尽管此处的数据未显示,但多个供应商可能具有相同的截止日期。对于“tblCutoffdate”中的少量记录,我可以编写如下查询:
SELECT tblVendors.ShipmentId, tblVendors.VendorNumber, tblVendors.VendorName,
tblVendors.Units, tblVendors.ShipDate
FROM tblVendors INNER JOIN tblCutoffDate ON tblVendors.VendorNumber =
tblCutoffDate.VendorNumber
WHERE (((tblVendors.VendorNumber) In (SELECT VendorNumber FROM [tblCutoffDate] WHERE
[tblCutoffDate].[CutoffDate] = #2/1/2014#)) AND ((tblVendors.ShipDate)>=#2/1/2014#)) OR
(((tblVendors.VendorNumber) In (SELECT VendorNumber FROM [tblCutoffDate] WHERE
[tblCutoffDate].[CutoffDate] = #4/1/2014#)) AND ((tblVendors.ShipDate)>=#4/1/2014#));
根据需要,查询给了我一个结果,如下所示:
我现在担心的是我有很多记录被添加到“tblCutoffDate”中,这使得我很难对查询中的日期进行硬编码。有没有更好的方法来编写上面的 SQL 语句而无需任何硬编码?