Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Замяна на нулевата стойност с най-новата стойност

Мисля, че това ще работи за вашия случай:

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. Списък с типове данни в SQL Server 2017

  2. Как да вмъкнете данните от една колона в друга таблица

  3. Неуспешно влизане за потребител „NT AUTHORITY\ANONYMOUS LOGON“ в SQL Server 2008

  4. Как да симулирам тежко използване на база данни с SQL сървър 2005

  5. Брой Брой последователни поява на стойности в табл