Группировать и манипулировать на основе нескольких столбцов - PullRequest
0 голосов
/ 08 февраля 2012

У меня есть таблица, которая вставляет строку, когда на сайте используется определенная функция, и ставит отметку о дате.

code-/----date----/--type
-----/------------/------
--1--/--2012-2-1--/-used
--1--/--2012-2-3--/-saved
--1--/--2012-1-3--/-printed
--2--/--2012-2-1--/-used
--2--/--2012-2-2--/-printed

Я должен сообщить, сколько раз код 1 был (напечатан или сохранен илииспользуется) сегодня, или вчера, или в прошлом месяце (диапазон дат)

Я начинаю с этого:

$stat_query = mysql_query("SELECT code, type, date FROM tracking WHERE code IN ('$htL','$htG','$htR') GROUP BY code, type, date");

Я использую операнд IN, потому что у каждого пользователя есть 3 кода для отслеживания с неограниченнымзаписи даты для каждого типа.

Я действительно потерян, что делать здесь.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2012

Код GROUP BY, тип, дата в этом примере заставляет его возвращать только одну запись.Поскольку все строки кода будут суммироваться в отдельной выходной строке, тип также будет уменьшаться все больше и больше.Пожалуйста, проверьте поля GROUP BY.

0 голосов
/ 08 февраля 2012

Вам нужно будет построить диапазоны дат и изменить запрос.Ниже приведен пример показа счетчика code за прошедший день:

SELECT `code`, COUNT(`code`) as code_cnt 
FROM tracking 
WHERE 
    `code` IN ('$htL','$htG','$htR') AND
    `date` BETWEEN DATE_SUB(now(), INTERVAL 1 HOUR) AND now()
GROUP BY `code`

Ознакомьтесь с документацией DATE_SUB для получения дополнительной помощи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...