Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL-Abfrage zum Abrufen der Durchschnittswerte für 1-Tages-Gap-Dobs von Clients

Eine Selbstverknüpfung verbindet den aktuellen Datensatz mit allen Datensätzen mit dem gestrigen Datum. Gruppieren nach ermöglicht in diesem Zusammenhang das Zählen vieler Datensätze mit gleichem Datum. t1 muss separat verbucht werden, also wird das Gehalt nachträglich hinzugefügt und count(*) wird erhöht, um den Durchschnitt zu berechnen.

Hier ist Sql Fiddle mit Beispiel .

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