2013-09-05 2 views
1

У меня есть таблица (dataTbl), как рев.Как получить Дата мудрый Отчет с MySql

id date 
1 05-08-2013 
2 10-08-2013 
3 11-08-2013 
4 12-08-2013 
5 12-08-2013 
6 12-08-2013 
7 21-08-2013 
8 22-08-2013 
9 23-08-2013 
10 23-08-2013 
11 24-08-2013 
12 29-08-2013 
13 30-08-2013 
14 30-08-2013 
15 30-08-2013 

Я хочу, чтобы получить выход, как пыльник между 01-08-2013 до 30-08-2013 после я выполнить запрос: -

date  entries 
01-08-2013 0 
02-08-2013 0 
03-08-2013 0 
04-08-2013 0 
05-08-2013 1 
06-08-2013 0 
07-08-2013 0 
08-08-2013 0 
09-08-2013 0 
10-08-2013 1 
11-08-2013 1 
12-08-2013 3 
13-08-2013 0 
14-08-2013 0 
15-08-2013 0 
etc., etc., 

Как это сделать в запросе MySQL? Пожалуйста, помогите мне!

В таблице есть записи для 5, 10, 11, 12 (3 записей), 21, 22, 23 (2 записи).

Но выход должен начинаться с 01, 02, 03, 04, 05, 06, 07, 08, 09, 10 ... с количеством записей.

ответ

2

Если вы не хотите использовать PHP или хранимые процедуры, вам потребуется второй таблицы, чтобы перечислить все даты, как только вы, что, как говорят all_dates

select listdate, count(datatbl.date) from all_dates 
left outer join datatbl on all_dates.listdate = datatbl.date 

Или альтернативно

Select listdate,0 from all_dates where listdate not in (select distinct date from datatbl) 
union 
select date, count(*) from databl group by date 
+0

Таким образом, мы нужны две таблицы ... – rkaartikeyan

+1

@rkaartikeyan Это лучший способ **. – Kermit

+0

Привет ... @ rkaartikeyan вы можете дать мне этот второй запрос (all_dates)? спасибо заранее: D –

Смежные вопросы