Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да попълня липсващите дати и стойности в разделени данни?

Първо, трябва да генерирате датите. След това можете да генерирате всички комбинации от дата и име. Накрая попълнете стойностите. Ето пример за използване на 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. Postgresql Linked Server Query много бавно

  2. Средна стойност на множество колони

  3. Трябва да изтриете дублиращи се записи от таблицата с помощта на row_number()

  4. Вземете идентификатора на обект от неговото име в SQL Server:OBJECT_ID()

  5. Нулиране на първичен ключ (int като самоличност)