0

假设我有这些表,下面有字段名称。

DailyLeaveLedger
dldEmployeeID
dldLeaveDate

InvoiceHeader
invEmployeeID
invWeekEnding
InvNumberWeeksCovered

所以我想要一个查询选择发票涵盖的休假日,即 invWeekEnding 10 月 2 日和 InvNumberWeeksCovered = 1,那么 9 月 26 日至 10 月 2 日范围内的任何休假都可以。此外,您必须让 EmployeeiD 字段匹配。

请在 MSAccess 2003 中使用?

4

1 回答 1

0

试试这个

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,然后检查这些日期之间的日期。

希望有帮助。

于 2009-09-30T05:22:10.753 回答