Я считаю месячную таблицу продаж следующей:
create table ventas (
id int NOT NULL AUTO_INCREMENT,
year int,
month int,
monto numeric(15,2),
PRIMARY KEY (id)
);
insert into ventas (year, month, monto) values (2018, 1, 100);
insert into ventas (year, month, monto) values (2018, 1, 300);
insert into ventas (year, month, monto) values (2018, 3, 340);
insert into ventas (year, month, monto) values (2018, 5, 200);
insert into ventas (year, month, monto) values (2018, 5, 100);
insert into ventas (year, month, monto) values (2018, 7, 100);
insert into ventas (year, month, monto) values (2018, 8, 100);
insert into ventas (year, month, monto) values (2018, 9, 200);
insert into ventas (year, month, monto) values (2018,11, 350);
insert into ventas (year, month, monto) values (2018,12, 440);
Я стараюсь делать доклад этих продаж в месяц, я это попробовал так:
select year,
month,
sum(monto) as total
from ventas
group by year,
month
И я получаю что-то как это:
| year | month | total |
|------|-------|-------|
| 2018 | 1 | 400 |
| 2018 | 3 | 340 |
| 2018 | 5 | 300 |
| 2018 | 7 | 100 |
| 2018 | 8 | 100 |
| 2018 | 9 | 200 |
| 2018 | 11 | 350 |
| 2018 | 12 | 440 |
Что правильно, но поскольку возможно наблюдать, есть "пустоты", а именно, месяцы без стоимости, у меня хотел бы быть доклад, но с 12 месяцами и завершить тех, у которых не были продажи с 0, а именно нечто похожее
| year | month | total |
|------|-------|-------|
| 2018 | 1 | 400 |
| 2018 | 2 | 0 |
| 2018 | 3 | 340 |
| 2018 | 4 | 0 |
| 2018 | 5 | 300 |
| 2018 | 6 | 0 |
| 2018 | 7 | 100 |
| 2018 | 8 | 100 |
| 2018 | 9 | 200 |
| 2018 | 10 | 0 |
| 2018 | 11 | 350 |
| 2018 | 12 | 440 |
Возможно, что это не продажи, или что это какой-то другой тип данных, важно понимать концептуальную проблему, которая: что мы делаем, когда нам не хватает информации в таблице?. Когда у нас нет чтения датчика для каждых часов, когда есть исчислимые счета, которые не регистрируют движения за некие месяцы, когда мы хотим занести в список продажи всех отделений, но есть отделения, у которых не были продажи, когда мы хотим знать, все люди заняли комнату, но есть комнаты, которые никогда не были заняты, и т.д.