Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wypełnić brakujące daty i wartości w danych podzielonych na partycje?

Najpierw musisz wygenerować daty. Następnie możesz wygenerować wszystkie kombinacje daty i nazwiska. Na koniec wpisz wartości. Oto przykład użycia cross apply :

with dates as (
      select @MINDATE as thedate
      union all
      select dateadd(day, 1, thedate)
      from dates
      where dateadd(day, 1, thedate) <= getdate()
     )
select thedate, vals.val
from dates cross join
     (select distinct name from hypothetical) h cross apply
     (select top 1 val
      from hypothetical h2
      where h2.name = h.name and h2.date <= dates.thedate
      order by date desc
     ) vals;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 11 najlepszych praktyk dotyczących indeksowania SQL Server w celu poprawy wydajności dostrajania

  2. Ograniczenie klucza obcego może powodować cykle lub wiele ścieżek kaskadowych?

  3. Trendy w 2020 roku, których administratorzy baz danych powinni być świadomi

  4. Klauzula ORDER BY jest nieprawidłowa w widokach, funkcjach wbudowanych, tabelach pochodnych, podzapytaniach i typowych wyrażeniach tabelowych

  5. SQL Server 2005 Używanie DateAdd do dodawania dnia do daty