Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Nhóm theo tháng bao gồm các tháng trống

Một cách để làm điều này là tạo và điền vào một bảng đầy đủ các tháng liên tiếp.

Sau đó, bạn có thể OUTER JOIN bằng cách sử dụng bảng đó.

Vì vậy, một cái gì đó như:

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;

Tái bút:Không chắc bạn có chống lại Oudejaarsavond hay không nhưng có 31 ngày trong tháng 12;-)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để gỡ lỗi Khóa thời gian chờ vượt quá thời gian chờ trên MySQL?

  2. MySQL cách nối các bảng trên hai trường

  3. PDO với CHÈN VÀO thông qua các báo cáo đã chuẩn bị

  4. Đã vượt quá thời gian chờ nhận được Khóa; thử bắt đầu lại giao dịch mặc dù tôi không sử dụng giao dịch

  5. Làm cách nào để biết khi nào vùng chứa mysql docker của tôi đã hoạt động và mysql đã sẵn sàng để thực hiện các truy vấn?