如果特定日期的记录不存在,如何插入新记录

时间:2018-04-24 10:38:07

标签: sql sql-server tsql stored-procedures sql-server-2014

我的表格中包含dateshipperNameShippercodeVolume列。
我需要获得整个月的记录。例如:如果我传递参数Date='04/24/2018' - 我应该获得整个月的数据 - 如果一个日期缺少任何数据,则必须从最后的知识记录中复制。

例如:

我有记录到04/18/2018 - 我需要将04/18/2018的记录复制到  04/19/2018 - 04/30/3028。 如何在SQL存储过程中执行此操作?

1 个答案:

答案 0 :(得分:0)

使用递归查询即时获取所需的日期。然后外部应用现有记录:

with dates(date) as
(
  select cast('20180301' as date)
  union all
  select dateadd(day, 1, date) from dates where date < getdate()
)
select * 
from dates
outer apply
(
  select top(1) *
  from mytable m
  where m.date <= dates.date
  order by m.date desc
) shippers
order by dates.date;

Rextester演示:http://rextester.com/USQF3805