Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kelompokkan berdasarkan bulan termasuk bulan kosong

Salah satu cara untuk melakukannya adalah dengan membuat dan mengisi tabel yang berisi bulan-bulan berturut-turut.

Anda kemudian dapat OUTER JOIN menggunakan tabel itu.

Jadi sesuatu seperti:

drop table if exists all_months;

create table all_months (a_month_id int unsigned PRIMARY KEY,a_month varchar(20) NOT NULL, UNIQUE KEY `all_months_uidx1` (a_month));

insert into all_months values (1,'January');
insert into all_months values (2,'February');
insert into all_months values (3,'March');
insert into all_months values (4,'April');
insert into all_months values (5,'May');
insert into all_months values (6,'June');
insert into all_months values (7,'July');
insert into all_months values (8,'August');
insert into all_months values (9,'September');
insert into all_months values (10,'October');
insert into all_months values (11,'November');
insert into all_months values (12,'December');

SELECT SUM(IFNULL(t1.VerkoopfactBedrag,0)) AS bedrag, 
am.a_month AS date
from
(
select
ifnull(vn.VerkoopfactBedrag,0) as VerkoopfactBedrag,
cast(DATE_FORMAT(VerkoopfactDatum, '%M') as char) as mdate
FROM verkoopfacturen vn
WHERE Verkoopfact_UserId = 12 
AND VerkoopfactDatum BETWEEN '2011-01-01' AND '2011-12-31' 
GROUP BY DATE_FORMAT(VerkoopfactDatum, '%M')
) t1 RIGHT OUTER JOIN all_months am on t1.mdate = am.a_month
group by am.a_month
order by a_month_id asc;

PS Tidak yakin apakah Anda memiliki sesuatu yang menentang Oudejaarsavond tetapi ada 31 hari di bulan Desember;-)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menampilkan Susunan Tabel di MySQL

  2. Persistent vs non-Persistent - Mana yang harus saya gunakan?

  3. Bagaimana cara mengambil beberapa baris dari prosedur tersimpan di MySQL?

  4. Pisahkan nilai string yang dibatasi menjadi baris

  5. Bagaimana cara mengeksekusi kueri yang disimpan dalam kolom tabel MySQL?