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

Bagaimana Anda bisa menggunakan SQL untuk mengembalikan nilai untuk tanggal yang ditentukan atau tanggal terdekat

Anda dapat mencoba sesuatu seperti ini:

SELECT date, grp, id
    , (SELECT TOP 1 price
       FROM price_table P2
       WHERE P1.id = P2.id
       AND P1.grp = P2.grp
       AND P2.date <= P1.date
       ORDER BY P2.date DESC)
FROM price_table P1
WHERE P1.date IN ('12/31/2009', '11/30/2009')
AND P1.grp IN ('Group1')

Sunting Untuk mendapatkan catatan terakhir untuk setiap bulan, grup dan id Anda dapat mencoba ini:

SELECT date, grp, id, price
FROM price_table P1
WHERE P1.date = (SELECT MAX(date)
                 FROM price_table P2
                 WHERE P1.grp = P2.grp
                 AND P1.id = P2.id
                 AND YEAR(P1.date) = YEAR(P2.date)
                 AND MONTH(P1.date) = MONTH(P2.date))
AND P1.grp In ('Group1')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mencari string di database SQL Server?

  2. menampilkan kolom non agregat dalam grup dengan kueri dalam SQL

  3. Pemrosesan kueri batch SQL (array input kueri SQL)

  4. Apa arti sintaks RAISERROR()

  5. Panduan pemula untuk tabel SQL