0

下にフィールド名が付いたこれらのテーブルがあるとします。

DailyLeaveLedger
dldEmployeeID
dldLeaveDate

InvoiceHeader
invEmployeeID
invWeekEnding
InvNumberWeeksCovered

したがって、請求書がカバーする休暇日を選択するクエリが必要です。つまり、invWeekEnding 02 Oct と 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])));

私がしたことは、invdate に -7 * InvNumberWeeksCovered を追加し、これらの間の日付をチェックすることでした。

それが役立つことを願っています。

于 2009-09-30T05:22:10.753 に答える