2014-10-21 2 views
0

Мне нужна помощь в запросе mySQL. Я хочу отобразить предыдущие шесть месяцев на основе данных firstDate и endDate. Оба из моего $ _GET php.
Я хочу, чтобы отобразить шесть месяцев, включая месяцы, которые пусты.
Ниже приведен мой текущий запрос.Показать данные за шесть месяцев с использованием данной даты MYSQL

SELECT m.monthNo as monthGroup, count(f.id) AS bilangan from monthEmpty m 
LEFT JOIN 
(SELECT id,month, code FROM survey) f 
ON DATE_FORMAT(f.month, '%c') = m.monthNo 
WHERE (month between DATE_SUB('2014-08-01', interval 5 month) and '2014-08-31') AND code = '001' 
group by monthGroup 

Для моей monthEmpty, у меня есть один столбец, который monthNo где значения является 1,2,3,4,5,6,7,8,9,10,11 и 12.
И таблица опроса, у меня есть идентификатор ответа, месяц с форматом ГГГГ-ММ-ДД и код - это ответ. В настоящее время мой запрос по-прежнему отображает только те месяцы, которые имеют значение.
Цените, если кто-то может понять, что добавить, чтобы сделать пустые месяцы. Благодарю.

ответ

0
SELECT m.monthNo AS monthGroup, COUNT(f.id) AS bilangan 
FROM monthEmpty m 
JOIN (

SELECT id, 
MONTH , code 
FROM survey 
)f ON DATE_FORMAT(f.month, '%c') = m.monthNo 
AND (

MONTH BETWEEN DATE_SUB( '2014-08-01', INTERVAL 5 
MONTH) 
AND '2014-08-31' 
) 
AND code = '001' 
GROUP BY monthGroup 

Используйте этот запрос, вам нужно объединить где caluse с левой присоединиться

+0

теперь отображаются все месяцы даже пустой. Однако могу ли я узнать, как отображать предыдущие шесть месяцев с указанной даты? (Ехр: '2014-08-01'). Таким образом, он отобразит aug, july, june, may, apr, mac. – deekay

+0

этого запроса отображения данных между 2014-03-01 и 2014-08-31 –

+0

здесь новый запрос, SELECT m.monthNo AS monthGroup, COUNT (f.id) КАК bilangan ОТ monthEmpty м LEFT JOIN (SELECT ID, monthSurvey, код FROM survey) f ON DATE_FORMAT (f.monthSurvey, '% c') = m.monthNo И (f.monthSurvey BETWEEN DATE_SUB ('2014-08-01', INTERVAL 5 MONTH) И '2014-08 -31 ') И код =' 001 ' GROUP BY monthGroup .. как я следую поиску ur. Я не уверен, что я что-то пропустил, потому что он по-прежнему отображается с 1 по 12, когда он должен отображаться только с 3 по 8 ... – deekay

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