Una autocombinación conectará el registro actual con todos los registros que tengan la fecha de ayer. En este contexto, group by permite contar muchos registros que tienen la misma fecha. t1
debe contabilizarse por separado, por lo que el salario se agrega después y el conteo (*) se incrementa para calcular el promedio.
Aquí está Sql Fiddle con un ejemplo .
select t1.ClientID,
t1.ClinetDOBs,
(t1.Slaries + sum (t2.Slaries)) / (count (*) + 1) Avg_Slaries
from table1 t1
inner join table1 t2
on t1.ClinetDOBs = dateadd(day, 1, t2.ClinetDOBs)
group by t1.ClientID,
t1.ClinetDOBs,
t1.Slaries