Můžete zkusit toto:
FROM workdone
LEFT JOIN staffcost ON workdone.date >= MAKEDATE(staffcost.costyear, 1)
AND workdone.date < MAKEDATE(staffcost.costyear+1, 1)
To umožní použití indexu na workdone.date
k vyhledání dat mezi prvním dnem costyear
až do prvního dne costyear+1
, nikoli však včetně .
Obecně platí, že tento druh hledání rozsahu může využívat indexy, kde funkce (jako YEAR(datestamp)
) nemůže.