sql >> Databáze >  >> RDS >> Sqlserver

Nahraďte hodnotu null nejnovější hodnotou

Myslím, že ve vašem případě to bude fungovat:

SELECT 
    t1.PositionDate,
    t1.Currency,
    COALESCE(t1.Value,t2.value) AS Value
FROM t1
LEFT join (SELECT MAX(PositionDate) AS PositionDate,Currency FROM t2 WHERE PositionDate < t1.PositionDate  GROUP BY Currency) tjoin
LEFT join t2 on tjoin.currency = t2.Currency and tjoin.PositionDate = t2.PositionDate


  1. Přidejte nový sloupec do výsledkové tabulky a spojte tabulku

  2. Jak přidat primární klíč do tabulky MySQL?

  3. SQL pro generování periodických snímků z tabulky transakcí

  4. Důvod pro získání ORA-01422:Přesné načtení vrátí více než požadovaný počet řádků