Чтобы создать отчет об устаревании в MySQL, вы можете использовать различные методы в зависимости от вашей структуры данных и требований. Вот несколько примеров:
Метод 1: использование функции DATEDIFF()
SELECT
customer_name,
invoice_number,
invoice_date,
DATEDIFF(NOW(), invoice_date) AS days_passed
FROM
invoices
WHERE
DATEDIFF(NOW(), invoice_date) > 30;
Этот запрос извлекает имя клиента, номер счета, дату счета и подсчитывает количество дней, прошедших с даты выставления счета. Затем он фильтрует результаты, чтобы отображать счета-фактуры, датированные более 30 днями.
Метод 2: использование функции TIMESTAMPDIFF()
SELECT
customer_name,
invoice_number,
invoice_date,
TIMESTAMPDIFF(DAY, invoice_date, NOW()) AS days_passed
FROM
invoices
WHERE
TIMESTAMPDIFF(DAY, invoice_date, NOW()) > 30;
Этот запрос аналогичен предыдущему, но для расчета количества прошедших дней используется функция TIMESTAMPDIFF().
Метод 3: использование оператора CASE
SELECT
customer_name,
invoice_number,
invoice_date,
CASE
WHEN invoice_date <= DATE_SUB(NOW(), INTERVAL 30 DAY) THEN 'Over 30 days'
WHEN invoice_date <= DATE_SUB(NOW(), INTERVAL 60 DAY) THEN '31-60 days'
WHEN invoice_date <= DATE_SUB(NOW(), INTERVAL 90 DAY) THEN '61-90 days'
ELSE 'More than 90 days'
END AS aging_category
FROM
invoices;
В этом методе оператор CASE используется для классификации счетов в зависимости от их возраста. Результат включает имя клиента, номер счета, дату счета и категорию срока действия, основанную на различных интервалах.