0

可能重复:
在 sql 结果中填充空日期的最直接方法是什么(在 mysql 或 perl 端)?

创建表:

CREATE TABLE `trb3` (
  `value` varchar(50) default NULL,
  `date` date default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 


SELECT date, SUM(value) AS value FROM trb3 GROUP BY date ORDER BY date DESC

  Jun 30 2011,100
  Jun 29 2011,90
      .
      .
  Jun 10 2011,90
  Jun 02 2011,89
  Jun 01 2011,10

为什么没有出现 Jun 03 的数据?

如何解决这个问题呢。

4

1 回答 1

2

您需要获取所需日期的列表,然后将其加入外部:

create table my_dates (my_date date not NULL);

然后用您想要数据的日期填充 my_dates:

insert into my_dates values ('2011-06-01'), ('2011-06-02'), ...;

然后

select my_dates.date, SUM(value)
from my_dates left join trb3 on trb3.date = my_dates.my_date
group by 1;

编辑:仅供参考,这不是临时表,而是永久表。

于 2011-06-03T07:38:52.470 回答