Я работаю над тем, как отображать количество заказов в месяцах за каждый месяц за определенный промежуток времени и некоторые другие ограничивающие факторы. Вот мой запрос.SQL-запрос для сортировки и группировки данных по месяцам
SELECT month(o.ord_date) as month, COUNT(o.ord_id) as January, COUNT(o.ord_id) as February, COUNT(o.ord_id) as March, COUNT(o.ord_id) as April,
COUNT(o.ord_id) as May, COUNT(o.ord_id) as June, COUNT(o.ord_id) as July, COUNT(o.ord_id) as August, COUNT(o.ord_id) as September,
COUNT(o.ord_id) as October, COUNT(o.ord_id) as November, COUNT(o.ord_id) as December
FROM hotels h, countries r, cities c, orders o LEFT JOIN trips t ON o.trp_id=t.trp_id
WHERE o.ord_date>'2016-01-01' AND o.ord_date<'2017-01-05' AND t.spr_id IN ('34','68','53')
AND o.htl_id=h.htl_id AND h.ctr_id = r.ctr_id AND h.cty_id = c.cty_id AND r.ctr_id = 245
GROUP BY month(o.ord_date)
ORDER BY month ASC
Ищу результате чего-то вроде этого:
| Jan | Feb | March | Apr | May | Jun | Jul | Aug | Sept | Oct | Nov | Dec
Jan | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Feb | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
March | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Apr | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
May | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Jun | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Jul | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Aug | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Sept | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Oct | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Nov | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Dec | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1
Спасибо заранее.
EDIT: Вот определение заказов таблицы P.Salmon просил:
CREATE TABLE IF NOT EXISTS `orders` (
`ord_id` int(11) NOT NULL AUTO_INCREMENT,
`ord_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`ord_deliv_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`trp_id` int(11) NOT NULL DEFAULT '0',
`htl_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`ord_id`)
) ENGINE=MyISAM AUTO_INCREMENT=35026 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
здесь несколько полей, которые нужно было бы объяснить:
ord_date
дата, когда заказ был первым изord_deliv_date
даты когда заказ должен быть доставлен. В этом случае начнется дата, когда начнется отключение (см.trp_id
).htl_id
- ссылка на таблицу отелей, где хранятсяctr_id
иcty_id
.
Рассмотрим обработку вопросов отображения данных в коде приложения – Strawberry
Сначала заменить неявное соединяется с явным присоединяется. –
Можете ли вы добавить определение таблицы для заказов, пожалуйста, и некоторые примеры данных. –