Une auto-jointure connectera l'enregistrement actuel à tous les enregistrements ayant la date d'hier. Dans ce contexte, le regroupement par permet de compter plusieurs enregistrements ayant la même date. t1
doit être comptabilisé séparément, donc le salaire est ajouté par la suite, et count(*) est incrémenté pour calculer la moyenne.
Voici Sql Fiddle avec exemple .
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