Grazie Luca,
Il funzionamento però non l'ho deciso io; io devo far funzionare la query.
la query di nicola prende la tariffa successiva alla data del lavoro se non trova una tariffa per la data in cui il lavoro è stato svolto ma se trova una tariffa per la data del lavoro svolto prende quella, almeno dalle prove così mi sembra perchè usa la condizione lav.data <= tar.data
E questo è quello che volevo ottenere.

Per quanto riguarda gli standard sql cui ti riferisci chiederei anche il tuo contributo, fermo restando il principio di funzionamento per il motivo sopra spigato.
Quali correzioni faresti alla query?

Se funziona su una tabella di 3 righe perchè non dovrebbe funzionare su una tabella di 10.000?

Grazie