सबसे पहले, आपको तिथियां उत्पन्न करने की आवश्यकता है। फिर आप दिनांक और नाम के सभी संयोजन उत्पन्न कर सकते हैं। अंत में, मान भरें। यहां 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;