Som det ses under Rate, så mangler der ved nogle datoer en valutakurs og jeg vil derfor gerne have at den tager den forrige værdi, sådan at der kommer til at stå 7.8 i den tomme værdi. Jeg kan bare ikke få den til at gøre det on the fly. Håber i kan hjælpe
Det vil vaere langt nemmere at goere i din applikation end i SQL.
Hvad programmerer du i?
Synes godt om
Slettet bruger
14. juli 2014 - 21:23#2
Måske noget i den her retning!~)
Select dt.Valuta, case dt.Rate is null then dt2.Rate else dt.Rate end as Rate, dt.Dato, dt.RowNumber from DinTabel dt left join DinTabel dt2 on dateadd(d,-1,dt.Dato) = dt2.Dato
Det er korrekt som arne_v skriver, så løser det den konkrete opgave, men hvis der er mere end 2 dage imellem hver rate, så fejler den (læs: rate = Null). Er det ikke muligt at lave en subselect eller noget i den retning?
SELECT t1.Valuta, COALESCE(t1.Rate, t2.Rate) AS Rate, t1.Dato, t1.RowNumber FROM #t AS t1 LEFT JOIN #t AS t2 ON t1.Valuta=t2.Valuta AND t2.Rate IS NOT NULL AND t2.Dato = ( SELECT MAX(Dato) FROM #t WHERE Valuta=t1.Valuta AND Dato < t1.Dato AND Rate IS NOT NULL)
Tænk ikke over det. Jeg lever fint uden point. Bare glad for at kunne hjælpe...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.