Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Ganti nilai nol dengan nilai terbaru

Ini akan bekerja untuk kasus Anda, saya pikir:

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. Apa yang salah dengan perhitungan pembagian kueri SQL Server ini?

  2. Menghindari injeksi SQL tanpa parameter

  3. Pemicu penembakan untuk penyisipan massal

  4. Bagaimana cara mendapatkan orang tua yang diberikan anak di SQL SERVER 2005

  5. Jenis kompleks string bidang - angka - string