===Advanced SQL Queries and Reports for Invoices **1. Report: Total Revenue Generated by Each Company in the Last Year** {{{ SELECT c.company_id, c.name AS company_name, SUM(i.total_amount) AS total_revenue FROM Company c JOIN Invoice i ON c.company_id = i.company_id WHERE i.issue_date BETWEEN NOW() - INTERVAL '1 year' AND NOW() GROUP BY c.company_id, c.name ORDER BY total_revenue DESC; }}} **2. Report: Invoices Issued to Each Client and Their Total Amount** {{{ SELECT cl.client_id, cl.name AS client_name, COUNT(i.invoice_id) AS total_invoices, SUM(i.total_amount) AS total_amount FROM Client cl JOIN Invoice i ON cl.client_id = i.client_id GROUP BY cl.client_id, cl.name ORDER BY total_amount DESC; }}} **3. Report: List of Overdue Invoices** {{{ SELECT i.invoice_id, i.issue_date, i.due_date, i.total_amount, cl.name AS client_name, c.name AS company_name FROM Invoice i JOIN Client cl ON i.client_id = cl.client_id JOIN Company c ON i.company_id = c.company_id WHERE i.due_date < NOW() AND i.status != 'Paid' ORDER BY i.due_date ASC; }}} **4. Report: Clients with the Highest Invoice Payments** {{{ SELECT cl.client_id, cl.name AS client_name, SUM(i.total_amount) AS total_paid FROM Client cl JOIN Invoice i ON cl.client_id = i.client_id WHERE i.status = 'Paid' GROUP BY cl.client_id, cl.name ORDER BY total_paid DESC LIMIT 10; }}} **5. Report: Outstanding Invoices by Each Client** {{{ SELECT cl.client_id, cl.name AS client_name, COUNT(i.invoice_id) AS outstanding_invoices, SUM(i.total_amount) AS outstanding_amount FROM Client cl JOIN Invoice i ON cl.client_id = i.client_id WHERE i.status = 'Unpaid' GROUP BY cl.client_id, cl.name ORDER BY outstanding_amount DESC; }}} **6. Report: Monthly Invoice Revenue** {{{ SELECT TO_CHAR(i.issue_date, 'YYYY-MM') AS month, SUM(i.total_amount) AS total_revenue FROM Invoice i GROUP BY TO_CHAR(i.issue_date, 'YYYY-MM') ORDER BY month DESC; }}} **7. Report: Top 5 Products/Services Sold by Revenue** {{{ SELECT l.description AS product_name, SUM(l.quantity * l.unit_price) AS total_revenue FROM LineItem l GROUP BY l.description ORDER BY total_revenue DESC LIMIT 5; }}} **8. Report: Invoices with the Most Line Items** {{{ SELECT i.invoice_id, i.issue_date, i.total_amount, COUNT(l.line_item_id) AS line_item_count FROM Invoice i JOIN LineItem l ON i.invoice_id = l.invoice_id GROUP BY i.invoice_id, i.issue_date, i.total_amount ORDER BY line_item_count DESC LIMIT 10; }}} **9. Report: Average Time to Payment** {{{ SELECT AVG(i.payment_date - i.issue_date) AS avg_days_to_payment FROM Invoice i WHERE i.status = 'Paid'; }}} **10. Report: Invoices with Discounts Applied** {{{ SELECT i.invoice_id, i.issue_date, i.total_amount, i.discount_percentage, (i.total_amount * i.discount_percentage / 100) AS discount_amount FROM Invoice i WHERE i.discount_percentage > 0 ORDER BY discount_amount DESC; }}}