У меня есть две таблицы:
CREATE TABLE 'sales_sheet' (
`_id` int(11) NOT NULL AUTO_INCREMENT,
`_typed_by` int(11) DEFAULT NULL,
`_product_id` int(11) DEFAULT NULL,
`_year` date DEFAULT NULL,
`_validation_state` int(11) DEFAULT NULL,
PRIMARY KEY (`_id`),
KEY `_product_id` (`_product_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE 'sales_sheet_entries' (
`_id` int(11) NOT NULL AUTO_INCREMENT,
`_sheet_id` int(11) DEFAULT NULL,
`_month` date DEFAULT NULL,
`_quantity` int(11) DEFAULT NULL,
PRIMARY KEY (`_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Эти две таблицы используются для хранения листов годовых продаж. В первой таблице хранится идентификатор продукта, год и статус проверки листа. Второй хранит ежемесячные продажи товара.
Хочу, в одном запросе получить такой результат:
---------------------------------------------
| Month | Sales volume |
---------------------------------------------
| January 2010 | |
| February 2010 | XXXXXX |
| March 2010 | XXXXXX |
| April 2010 | XXXXXX |
| May 2010 | |
| June 2010 | |
| July 2010 | |
| August 2010 | |
| September 2010 | |
| October 2010 | XXXXXX |
| November 2010 | XXXXXX |
| December 2010 | |
---------------------------------------------
Пустые поля в столбце объема продаж могут соответствовать записи, уже сохраненной в таблице sales_sheet_entries, но не имеют соответствующего объема продаж или просто отсутствуют в базе данных, но запрос должен отображать его.
Одно из моих ограничений заключается в том, что я не могу поставить 12 столбцов, соответствующих списку месяцев в таблице sales_sheet , потому что спецификации клиента меняются, и он может потребовать, чтобы объем продаж был заполнен за период вместо месяца.
Надеюсь, я был достаточно ясен, заранее благодарю за помощь и извиняюсь за мой английский.