Фильтрация результатов MySQL между двумя датами - PullRequest
0 голосов
/ 29 февраля 2012

Я использую следующий запрос, чтобы получить результаты, которые я продемонстрировал

SELECT 
b.sales_title,c.cat_name,COUNT(b.sales_id) as cnt,COUNT(DISTINCT e.comment_id) as coun
FROM tb_sale_report a 
INNER JOIN tbl_sales b on a.sales_id=b.sales_id 
INNER JOIN tb_category c on c.cat_id=b.category_id 
LEFT JOIN tb_comment e on b.sales_id=e.sales_id 
GROUP BY b.sales_title

 +------------+---------+--------+------+
| sales_title | cat_name| cnt    | coun |
+-------------+---------+--------+------+
| My Sales    |Toys     |20      |5     |
| First Sale  |Dress    |28      |1     |
|Premium      |Computer |7       |16    |
+-------------+--------+---------+------+

Теперь в таблице tb_sale_report у меня также есть другое поле с именем view_date, в котором будет храниться дата добавления идентификатора записи. Теперь я планирую добавить опцию фильтрации в таблицу tb_search_report, в которой пользователь может искать записи, добавленные между конкретными датами, такими как дата начала и дата окончания. Как я могу написать условие where для фильтрации результатов по указанным датам. Нужна помощь. Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 29 февраля 2012

Попробуйте ниже:

SELECT 
b.sales_title,c.cat_name,COUNT(b.sales_id) as cnt,COUNT(DISTINCT e.comment_id) as coun
FROM tb_sale_report a 
INNER JOIN tbl_sales b on a.sales_id=b.sales_id 
INNER JOIN tb_category c on c.cat_id=b.category_id 
LEFT JOIN tb_comment e on b.sales_id=e.sales_id 
where left(a.view_date,10) between 'start_date' and 'end_date';
GROUP BY b.sales_title

Пожалуйста, замените start_date и end_date значениями

1 голос
/ 29 февраля 2012

Попробуйте выполнить этот запрос

SELECT 
b.sales_title,c.cat_name,COUNT(b.sales_id) as cnt,COUNT(DISTINCT e.comment_id) as coun
FROM tb_sale_report a 
INNER JOIN tbl_sales b on a.sales_id=b.sales_id 
INNER JOIN tb_category c on c.cat_id=b.category_id 
LEFT JOIN tb_comment e on b.sales_id=e.sales_id 
WHERE b.sales_date BETWEEN $start_date AND $end_date 
GROUP BY b.sales_title
0 голосов
/ 29 февраля 2012

Самое простое решение состоит в том, чтобы просто добавить предложение WHERE с солнцезащитным предложением BETWEEN, например,

WHERE view_date BETWEEN date1 AND date2
...