我有两张桌子:
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表中的月份列表,因为客户规范正在发生变化,他可能会要求按期间而不是按月份填写销量。
我希望我足够清楚,提前感谢您的帮助和对不起我的英语。