sql >> Database >  >> RDS >> Sqlserver

Vervang de null-waarde door de laatste waarde

Dit zal voor jouw geval werken denk ik:

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. Oracle SQL - Hoe u tellingen kunt krijgen op basis van datums in meerdere kolommen in ORACLE

  2. Hoe u gemiddelde waarden voor tijdsintervallen in Postgres krijgt

  3. E-mailadres als primaire sleutel gebruiken?

  4. Is COUNT(rowid) sneller dan COUNT(*)?