MySQL - 是否可以显示空行?

时间:2012-12-04 14:37:17

标签: mysql sql gaps-and-islands monthcalendar

  

可能重复:
  Displaying zero valued months with SQL

对于某个属性,是否可以显示其行,即使它是空的?

说我有属性date_of_car_sale。另外,假设我想做月度报告。

从2009年1月到12月,该公司有两个月的假期,所以6月和8月没有date_of_car_sale

是否有可能制作一份显示2009年每月的报告,即使6月和8月没有数据值?

我可以制作每个月的节目,并将它们分组以仅显示个别月份。但似乎无法显示六月和八月,因为它们是空的。

PS:这只需要表公司中的一列。

1 个答案:

答案 0 :(得分:2)

在这种情况下,我通常会创建一个包含我想要显示的所有值的表,并对我的数据集进行左连接。因此,在您的情况下,我会创建一个名为“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