Just for the fun of it...
IF OBJECT_ID('tempdb..#TestData', 'U') IS NOT NULL
BEGIN DROP TABLE #TestData; END;
CREATE TABLE #TestData (
SomeDate DATE NOT NULL PRIMARY KEY CLUSTERED, --<= this will function as a "POC" index for the query.
SomeValue INT NOT NULL
);
INSERT #TestData (SomeDate, SomeValue) VALUES
('2018-01-01', 25),
('2018-01-05', 22),
('2018-01-22', 13),
('2018-02-02', 20),
('2018-02-05', 30),
('2018-02-15', 34),
('2018-02-24', 42),
('2018-02-27', 9),
('2018-03-01', 15),
('2018-03-11', 4),
('2018-03-15', 25),
('2018-03-20', 60),
('2018-04-09', 12),
('2018-04-12', 32),
('2018-04-21', 34),
('2018-04-24', 61),
('2018-05-15', 4),
('2018-05-23', 33);
--====================================================
WITH
cte_get_lead_date AS ( --<= the CTE is just an easy option for making the "lead_date" available to the main query.
SELECT
td.SomeDate,
td.SomeValue,
lead_date = LEAD(td.SomeDate, 1, td.SomeDate) OVER (ORDER BY td.SomeDate) --<= the use of a "POC" index prevents the windowing function from causing a sort operation in the execution plan.
FROM
#TestData td
)
SELECT
SomeDate = DATEADD(DAY, atd.add_to_date, gld.SomeDate),
gld.SomeValue
FROM
cte_get_lead_date gld
CROSS APPLY (
SELECT TOP (ISNULL(NULLIF(DATEDIFF(DAY, gld.SomeDate, gld.lead_date), 0), 1))
ROW_NUMBER() OVER (ORDER BY n1.n) - 1
FROM --<= just showing an alternate means of creating an inline tally table.
( VALUES (1),(1),(1),(1),(1),(1),(1),(1),(1),(1) ) n1 (n) --<= 10 rows
CROSS APPLY ( VALUES (1),(1),(1),(1),(1),(1),(1),(1),(1),(1) ) n2 (n) --<= 100 rows
CROSS APPLY ( VALUES (1),(1),(1),(1),(1),(1),(1),(1),(1),(1) ) n3 (n) --<= 1000 rows (seems like 3 years should be enough "head room").
) atd (add_to_date);
The results...SomeDate SomeValue
---------- -----------
2018-01-01 25
2018-01-02 25
2018-01-03 25
2018-01-04 25
2018-01-05 22
2018-01-06 22
2018-01-07 22
2018-01-08 22
2018-01-09 22
2018-01-10 22
2018-01-11 22
2018-01-12 22
2018-01-13 22
2018-01-14 22
2018-01-15 22
2018-01-16 22
2018-01-17 22
2018-01-18 22
2018-01-19 22
2018-01-20 22
2018-01-21 22
2018-01-22 13
2018-01-23 13
2018-01-24 13
2018-01-25 13
2018-01-26 13
2018-01-27 13
2018-01-28 13
2018-01-29 13
2018-01-30 13
2018-01-31 13
2018-02-01 13
2018-02-02 20
2018-02-03 20
2018-02-04 20
2018-02-05 30
2018-02-06 30
2018-02-07 30
2018-02-08 30
2018-02-09 30
2018-02-10 30
2018-02-11 30
2018-02-12 30
2018-02-13 30
2018-02-14 30
2018-02-15 34
2018-02-16 34
2018-02-17 34
2018-02-18 34
2018-02-19 34
2018-02-20 34
2018-02-21 34
2018-02-22 34
2018-02-23 34
2018-02-24 42
2018-02-25 42
2018-02-26 42
2018-02-27 9
2018-02-28 9
2018-03-01 15
2018-03-02 15
2018-03-03 15
2018-03-04 15
2018-03-05 15
2018-03-06 15
2018-03-07 15
2018-03-08 15
2018-03-09 15
2018-03-10 15
2018-03-11 4
2018-03-12 4
2018-03-13 4
2018-03-14 4
2018-03-15 25
2018-03-16 25
2018-03-17 25
2018-03-18 25
2018-03-19 25
2018-03-20 60
2018-03-21 60
2018-03-22 60
2018-03-23 60
2018-03-24 60
2018-03-25 60
2018-03-26 60
2018-03-27 60
2018-03-28 60
2018-03-29 60
2018-03-30 60
2018-03-31 60
2018-04-01 60
2018-04-02 60
2018-04-03 60
2018-04-04 60
2018-04-05 60
2018-04-06 60
2018-04-07 60
2018-04-08 60
2018-04-09 12
2018-04-10 12
2018-04-11 12
2018-04-12 32
2018-04-13 32
2018-04-14 32
2018-04-15 32
2018-04-16 32
2018-04-17 32
2018-04-18 32
2018-04-19 32
2018-04-20 32
2018-04-21 34
2018-04-22 34
2018-04-23 34
2018-04-24 61
2018-04-25 61
2018-04-26 61
2018-04-27 61
2018-04-28 61
2018-04-29 61
2018-04-30 61
2018-05-01 61
2018-05-02 61
2018-05-03 61
2018-05-04 61
2018-05-05 61
2018-05-06 61
2018-05-07 61
2018-05-08 61
2018-05-09 61
2018-05-10 61
2018-05-11 61
2018-05-12 61
2018-05-13 61
2018-05-14 61
2018-05-15 4
2018-05-16 4
2018-05-17 4
2018-05-18 4
2018-05-19 4
2018-05-20 4
2018-05-21 4
2018-05-22 4
2018-05-23 33