Domanda

Dire che ho queste tabelle con i nomi dei campi sotto.

DailyLeaveLedger
dldEmployeeID
dldLeaveDate

InvoiceHeader
invEmployeeID
invWeekEnding
InvNumberWeeksCovered

Quindi voglio una query seleziona lasciare giorni in cui una fattura coperture che lasciano cioè invWeekEnding 2 ottobre e InvNumberWeeksCovered = 1 allora qualsiasi congedo nel range 26 Settembre - 2 Ottobre è ok. Inoltre si deve avere campi EmployeeID partita.

Nel MSAccess 2003 Si prega di?

È stato utile?

Soluzione

Prova questo

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])));

Quello che ho fatto è stato aggiunge -7 * InvNumberWeeksCovered al invdate, e quindi verificare la presenza di date fra questi.

La speranza che aiuta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top