add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE promotion (
promotion Varchar(4) NOT NULL
PRIMARY KEY
);
INSERT INTO promotion VALUES ('10%'),('20%'),('30%');
CREATE TABLE sale (
sale_id int NOT NULL PRIMARY KEY AUTO_INCREMENT,
promotion Varchar(4),
date_ Date NOT NULL,
amount int
);
insert into sale (promotion, date_, amount) values
(null,'2022-1-1',100),
('10%','2022-1-1',100),
('20%','2022-1-1',100),
('30%','2022-1-1',100),
(null,'2022-1-2',100),
('10%','2022-1-2',110),
('20%','2022-1-2',120),
('30%','2022-1-2',130),
(null,'2022-2-1',75),
('10%','2022-2-1',75),
('20%','2022-2-1',75),
('30%','2022-2-1',75),
(null,'2022-2-2',75),
('10%','2022-2-2',75),
('20%','2022-2-2',75),
('30%','2022-2-2',75);
select
Month(date_) month_,
ifnull(p.promotion,'No Promo') Promotion,
sum(amount) Total
from sale
left join promotion p on p.promotion = sale.promotion
group by Month(date_), ifnull(p.promotion,'No Promo');
month_ Promotion Total
1 No Promo 200
1 10% 210
1 20% 220
1 30% 230
2 No Promo 150
2 10% 150
2 20% 150
2 30% 150