Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zastąp wartość pustą najnowszą wartością

Myślę, że to zadziała w twoim przypadku:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. błąd nie znaleziono klucza przetwarzania wymiaru ssas

  2. SQL Server 2008 - oddzielanie pola Adres

  3. Framework Entity bardzo wolno ładuje się po raz pierwszy po każdej kompilacji

  4. Rozwiązywanie problemów z wąskimi gardłami we/wy dysku

  5. Jak skonfigurować pocztę bazy danych w programie SQL Server (SSMS)