可能重复:
使用 SQL 显示零值月份
对于某个属性,即使它是空的,是否可以显示它的行?
说我有属性date_of_car_sale
。另外,假设我想做一份月度报告。
2009年1月到12月,公司有两个月放假,所以date_of_car_sale
6月和8月没有。
是否可以制作显示 2009 年每个月的报告,即使 6 月和 8 月没有数据值?
我可以制作每个月的节目,并将它们分组以仅显示个别月份。但似乎无法显示六月和八月,因为它们是空的。
PS:这只需要公司表中的一列。
可能重复:
使用 SQL 显示零值月份
对于某个属性,即使它是空的,是否可以显示它的行?
说我有属性date_of_car_sale
。另外,假设我想做一份月度报告。
2009年1月到12月,公司有两个月放假,所以date_of_car_sale
6月和8月没有。
是否可以制作显示 2009 年每个月的报告,即使 6 月和 8 月没有数据值?
我可以制作每个月的节目,并将它们分组以仅显示个别月份。但似乎无法显示六月和八月,因为它们是空的。
PS:这只需要公司表中的一列。
在这种情况下,我通常会制作一个包含我想要显示的所有值的表格,并对我的数据集进行左连接。因此,在您的情况下,我将创建一个名为“months”的表,其中包含一个日期列,该列存储该月的第一天,或者可能包含第一天和最后一天的两列,并像这样加入:
SELECT m.month_first, COUNT(x.date_of_car_sale) as sales
FROM months m
LEFT JOIN (
SELECT date_of_car_sale
FROM sales
) x ON m.month_first <= x.date_of_car_sale
AND m.month_last >= x.date_of_car_sale
GROUP BY m.month_first
ORDER BY m.month_first