0

重複の可能性:
(mysql または perl 側で) SQL の結果に空の日付を埋め込む最も簡単な方法は何ですか?

テーブルの作成:

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

2003 年 6 月のデータが表示されないのはなぜですか?

この問題を解決する方法。

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 に答える