Sql 如何在MSAccess中编写联接选择查询?

Sql 如何在MSAccess中编写联接选择查询?,sql,ms-access,ms-access-2003,Sql,Ms Access,Ms Access 2003,假设这些表下面有字段名 DailyLeaveLedger dldEmployeeID dldLeaveDate InvoiceHeader invEmployeeID invWeekEnding InvNumberWeeksCovered 因此,我需要一个查询,选择发票涵盖的休假天数,即invWeekEnding 02 Oct和InvNumberWeeksCovered=1,那么9月26日至10月2日范围内的任何休假都可以。 此外,还必须使EmployeeiD字段匹配 在MSAccess 2

假设这些表下面有字段名

DailyLeaveLedger
dldEmployeeID
dldLeaveDate

InvoiceHeader
invEmployeeID
invWeekEnding
InvNumberWeeksCovered
因此,我需要一个查询,选择发票涵盖的休假天数,即invWeekEnding 02 Oct和InvNumberWeeksCovered=1,那么9月26日至10月2日范围内的任何休假都可以。 此外,还必须使EmployeeiD字段匹配

在MSAccess 2003中,请?

试试这个

SELECT InvoiceHeader.invEmployeeID, 
       InvoiceHeader.invWeekEnding, 
       DateAdd("d",-[InvNumberWeeksCovered]*7,[invWeekEnding]) AS StartDate,
       DailyLeaveLedger.dldLeaveDate
  FROM InvoiceHeader 
       INNER JOIN DailyLeaveLedger 
          ON InvoiceHeader.invEmployeeID = DailyLeaveLedger.dldEmployeeID
WHERE (((DailyLeaveLedger.dldLeaveDate) 
         Between [invWeekEnding] 
         And DateAdd("d",-[InvNumberWeeksCovered]*7,[invWeekEnding])));
我所做的是将-7*InvNumberWeeksCovered添加到invdate,然后检查它们之间的日期

希望有帮助