Input
My input consists of x_0_y_0 and x_1.
x_0_y_0 (table dates) contains the dates and values of the form:
timestamp   value
2000-01-01  1
2000-01-03  3
2000-01-05  5
x_1 (query dates_to_interpolate) contains the dates of the form:
timestamp
2000-01-01
2000-01-02
2000-01-03
2000-01-04
2000-01-05
Output
My desired output x_1_y1 (query interpolation_results) would be of the form:
timestamp    value
2000-01-01   1
2000-01-02   2
2000-01-03   3
2000-01-04   4
2000-01-05   5
Method (Attempt)
Using info in this thread and some native sqlite syntax I managed to get a query which gives an interpolated value (say 4) for a single selected date, say '2000-01-04'.
SELECT CASE WHEN next.timestamp IS NULL  THEN prev.value
            WHEN prev.timestamp IS NULL  THEN next.value
            WHEN next.timestamp = prev.timestamp  THEN prev.value
              ELSE ( ( julianday(date('2000-01-04')) - julianday(prev.timestamp) ) * next.value
                +    ( julianday(next.timestamp) - julianday(date('2000-01-04')) ) * prev.value
                   ) / (julianday(next.timestamp) - julianday(prev.timestamp))
       END AS interpolated_value 
FROM 
(SELECT dates.timestamp, dates.value FROM dates WHERE dates.timestamp <= date('2000-01-04') ORDER BY dates.timestamp DESC LIMIT 1) AS prev
CROSS JOIN 
(SELECT dates.timestamp, dates.value FROM dates WHERE dates.timestamp >= date('2000-01-04') ORDER BY dates.timestamp ASC LIMIT 1) AS next
Now I would like to parametrise this using @interpolation_date rather than '2000-01-04' so I have a function of the form interpolated_value(). It seems this could work if I was to call this programatically (say from Python or MATLAB). The problem is that I would like to apply interpolated_value() to dates_to_interpolate using sqlite syntax only (in a single query). I found out that sqlite does not support parameters in views, it does not support custom functions. I did see attempts at implementing loops (which I think I might need here); loops seems to involve recursive triggers or WITH syntax which I am not quite familiar with.
 
     
    