MySQL - 是否可以显示空行?

标签 mysql sql gaps-and-islands monthcalendar

Possible Duplicate:
Displaying zero valued months with SQL

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

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

2009年1月到12月,公司有两个月放假,所以没有date_of_car_sale六月和八月。

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

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

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

最佳答案

在这种情况下,我通常会制作一个包含我想要显示的所有值的表格,并对我的数据集进行左连接。因此,在您的情况下,我将创建一个名为“月份”的表,其中包含一个日期列,用于存储该月的第一天,或者可能是两列,其中包含第一天和最后一天,并像这样连接:

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

关于MySQL - 是否可以显示空行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13705301/

相关文章:

php - 我可以在 php 中查询这个数组以产生结果还是应该在 MySQL 中完成?

java - Maven GWT 插件 + JDO + MySQl

sql - 在两列上创建索引以检查日期是否介于这两个列之间

sql - 按连续日期对记录进行分组

php - Symfony 在 MySQL blob 中上传文件

php - 如何在一周内向同一个ID插入数据,但在下周添加另一个ID

mysql - 如何使用简单的公式创建查询?

php - 更改密码 PHP 问题

sql - 如何编写 "streak"查询?

sql - 在不创建额外表的情况下查找 SQL 中序列的间隙