Выберите, где была последняя активность 3 месяца назад - PullRequest
0 голосов
/ 18 октября 2018

У меня есть таблица счетов-фактур для сотовой связи, соответствующие столбцы: Cellular_Account_id (INT), billing_end_date(DATE) и data_usage_GB.

. Для каждого аккаунта каждый месяц существует отдельная строка.Я пытаюсь получить список учетных записей, в которых не использовались данные за последние три месяца.

Я довольно плохо знаком с базами данных в целом, поэтому я даже не совсем уверен, какой синтаксис мне следует искать или какой подход я должен использовать.

Я, конечно, могу выбрать WHERE data_usage_GB = 0.000 AND MONTH(billing_end_date) = month(current_date()) -1, но это дает мне информацию только в диапазоне за 1 месяц.Я не уверен, как сгруппировать результаты где data_usage_GB = 0.000 для каждого из последних трех месяцев.

1 Ответ

0 голосов
/ 18 октября 2018

Я бы сгруппировал по аккаунту, получил бы максимальную дату для каждого, а затем отфильтровал их, используя предложение having:

SELECT   cellular_account_id
FROM     invoices
GROUP BY cellular_account_id
HAVING   MAX(billing_end_date) < DATE_SUB(CURRENT_DATE, INTERVAL 3 MONTH)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...