Du kan prøve dette:
FROM workdone
LEFT JOIN staffcost ON workdone.date >= MAKEDATE(staffcost.costyear, 1)
AND workdone.date < MAKEDATE(staffcost.costyear+1, 1)
Dette vil tillade brugen af et indeks på workdone.date
for at søge efter datoer mellem den første dag i costyear
indtil men ikke inklusive den første dag i costyear+1
.
Generelt kan denne form for områdesøgning udnytte indekser, hvor funktioner (såsom YEAR(datestamp)
) kan ikke.