Een self-join verbindt het huidige record met alle records met de datum van gisteren. In deze context maakt group by het mogelijk om veel records met dezelfde datum te tellen. t1
moet apart worden verantwoord, dus het salaris wordt achteraf toegevoegd en count(*) wordt verhoogd om het gemiddelde te berekenen.
Hier is Sql Fiddle met voorbeeld .
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