== Напредни извештаи од базата (SQL и складирани процедури) = Неделен,Месечен,Годишен извештај '''Weekly''' \\ Креираме прашалник каде велиме "за секој ден од неделата во последни 7 дена,\\ прикажи број нарачки и вкупен приход" : \\ \\ {{{#!sql SELECT TO_CHAR(order_date, 'Dy') AS label, COUNT(*) AS orders, SUM(total_price) AS revenue FROM orders WHERE order_date >= NOW() - INTERVAL '7 days' GROUP BY label ORDER BY MIN(order_date); }}} \\ '''Monthly''' \\ Креираме прашалник каде велиме "за секој месец, преброј ги нарачките и пресметај вкупен приход" : \\ \\ {{{#!sql SELECT TO_CHAR(order_date, 'Mon') AS label, COUNT(*) AS orders, SUM(total_price) AS revenue FROM orders GROUP BY label ORDER BY MIN(order_date); }}} \\ '''Yearly''' \\ Креираме прашалник каде велиме "за секоја година, прикажи колку нарачки имало и колку приход е остварено" : \\ \\ {{{#!sql SELECT EXTRACT(YEAR FROM order_date)::INT AS label, COUNT(*) AS orders, SUM(total_price) AS revenue FROM orders GROUP BY label ORDER BY label; }}} \\ = Најпродавани продукти,Топ клиенти,Нови регистрации по месец '''Најпродавани продукти''' \\ Креираме прашалник каде велиме "за секој продукт, пресметај колку вкупно парчиња се продадени \\ (збир на quantity), сортирај ги и земи ги првите 5" : \\ \\ {{{#!sql SELECT p.product_name AS label, SUM(c.quantity) AS total_sold FROM contains c JOIN stock s ON c.id_stock = s.id_stock JOIN products p ON s.id_product = p.id_product GROUP BY p.product_name ORDER BY total_sold DESC LIMIT 5; }}} \\ '''Топ клиенти''' \\ Креираме прашалник каде велиме "да се пресмета колку трошел секој клиент вкупно,\\ и да се сортира според таа сума,на крај да ги врати ги првите 5" : \\ \\ {{{#!sql SELECT c.first_name || ' ' || c.last_name AS label, SUM(o.total_price) AS total_spent FROM orders o JOIN customers c ON o.id_customer = c.id_customer GROUP BY c.first_name, c.last_name ORDER BY total_spent DESC LIMIT 5; }}} \\ '''Нови регистрации по месец''' \\ Креираме прашалник каде велиме "за секој месец, прикажи колку нови корисници се регистрирале" : \\ \\ {{{#!sql SELECT TO_CHAR(created_at, 'Mon YYYY') AS label, COUNT(*) AS new_users FROM customers GROUP BY label ORDER BY MIN(created_at); }}} \\