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

SQL Bagaimana menunjukkan nilai '0' selama sebulan, jika tidak ada data di tabel untuk bulan itu

Anda dapat membuat kueri tabel dengan nilai 1-12 dan bagian luar kiri bergabung dengan hasil Anda.

Berikut adalah contoh menggunakan variabel tabel sebagai ganti kueri Anda dan CTE untuk membuat tabel dengan angka.

declare @T table
(
  Month int
)

insert into @T values(1)
insert into @T values(1)
insert into @T values(1)
insert into @T values(3)
insert into @T values(3)

;with Months(Month) as
(
  select 1
  union all
  select Month + 1
  from Months
  where Month < 12
)
select M.Month,
       count(T.Month) Count,
       isnull(sum(T.Month), 0) Sum
from Months as M
  left outer join @T as T
    on M.Month = T.Month
group by M.Month

Hasil:

Month       Count       Sum
----------- ----------- -----------
1           3           3
2           0           0
3           2           6
4           0           0
5           0           0
6           0           0
7           0           0
8           0           0
9           0           0
10          0           0
11          0           0
12          0           0


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Simpan beberapa nilai bit dalam satu kolom tabel

  2. Encoding SQL_Latin1_General_CP1_CI_AS ke dalam UTF-8

  3. Buat Tabel Sementara di SQL Server

  4. Konversi varchar ke datetime di sql yang memiliki milidetik

  5. SQL - Ganti baris berulang dengan nilai nol sambil mempertahankan jumlah baris