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

Cara Menentukan Nilai untuk Bulan yang Hilang berdasarkan Data Bulan Sebelumnya di T-SQL

Saya akan mulai dengan membuat tabel Numbers yang menyimpan bilangan bulat berurutan dari 1 hingga satu juta atau lebih. Mereka sangat berguna setelah Anda menguasainya.

Sebagai contoh, berikut adalah cara mendapatkan tanggal 1 setiap bulan di tahun 2008:

select firstOfMonth = dateadd( month, n - 1, '1/1/2008')
from Numbers
where n <= 12;

Sekarang, Anda dapat menggabungkannya menggunakan OUTER APPLY untuk menemukan transaksi terbaru untuk setiap tanggal seperti:

with Dates as (
    select firstOfMonth = dateadd( month, n - 1, '1/1/2008')
    from Numbers
    where n <= 12
)
select d.firstOfMonth, t.TransactionValue
from Dates d
outer apply (
    select top 1 TransactionValue
    from Transactions
    where TransactionDate <= d.firstOfMonth
    order by TransactionDate desc
) t;

Ini akan memberikan apa yang Anda cari, tetapi Anda mungkin perlu sedikit menelusuri Google untuk menemukan cara terbaik membuat tabel Numbers.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat UDF Terikat Skema di SQL Server

  2. Dasar-dasar Log Transaksi SQL Server

  3. Sintaks salah di dekat ''

  4. Instalasi Cluster Failover SQL Server -3

  5. SYSUTCDATETIME() Contoh di SQL Server (T-SQL)