By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
SET DATEFORMAT dmy;
CREATE TABLE Balance
(
[Date] date,
Bal int
);
INSERT INTO Balance ([Date], Bal)
VALUES('02-04-2020', 200),
('03-04-2020', 100),
('05-04-2020', 300),
('08-04-2020', 400)
;WITH CTE AS
(
SELECT MIN([Date]) MinDate, MIN([Date]) CurrDate, Max([Date]) MaxDate
FROM Balance
UNION ALL
SELECT MinDate, DATEADD(DD, 1, CurrDate) CurrDate, MaxDate
FROM CTE
WHERE DATEADD(DD, 1, CurrDate)<= MaxDate
)
SELECT c.CurrDate, b.Bal
FROM CTE c LEFT JOIN Balance b ON c.CurrDate = b.[Date]
CurrDate | Bal |
---|---|
2020-04-02 | 200 |
2020-04-03 | 100 |
2020-04-04 | null |
2020-04-05 | 300 |
2020-04-06 | null |
2020-04-07 | null |
2020-04-08 | 400 |