ℹ️ Select 'Choose Exercise', or randomize 'Next Random Exercise' in selected language.

Choose Exercise:
Timer 00:00
WPM --
Score --
Acc --
Correct chars --

Detect stale invoices

Goal -- WPM

Ready
Exercise Algorithm Area
1SELECT i.id, i.customer_id, i.due_date
2FROM invoices i
3LEFT JOIN payments p ON p.invoice_id = i.id
4WHERE p.id IS NULL AND i.due_date < date('now', '-30 day');
Algorithm description viewbox

Detect stale invoices

Algorithm description:

Identify outstanding invoices that have surpassed the 30-day window without any payment events.

Algorithm explanation:

Use a LEFT JOIN to find invoices lacking payment rows and filter by due_date older than 30 days relative to today, ensuring insurance for missing data.

Pseudocode:

SELECT invoice.id, invoice.customer_id, invoice.due_date
FROM invoices
LEFT JOIN payments ON payments.invoice_id = invoice.id
WHERE payments.id IS NULL
  AND invoice.due_date < TODAY() - 30