| | 1 | = Напредни извештаи од базата (SQL и складирани процедури) = |
| | 2 | |
| | 3 | === Извештај 1: Листа на клиенти со сите активни полиси и деталите за нив === |
| | 4 | |
| | 5 | Овој извештај ќе ги прикаже сите клиенти со нивните активни полиси, типот на полиса, пакетот што го користат, и сите покриени услуги. |
| | 6 | |
| | 7 | {{{#!sql |
| | 8 | |
| | 9 | SELECT |
| | 10 | c.name AS Customer_Name, |
| | 11 | c.email AS Customer_Email, |
| | 12 | p.p_id AS Policy_ID, |
| | 13 | p.sdate AS Start_Date, |
| | 14 | p.edate AS End_Date, |
| | 15 | CASE |
| | 16 | WHEN p.edate >= CURRENT_DATE THEN 'Active' |
| | 17 | ELSE 'Expired' |
| | 18 | END AS Policy_Status, |
| | 19 | pkg.title AS Package_Title, |
| | 20 | pkg.total AS Package_Total, |
| | 21 | STRING_AGG(cov.cov_type, ', ') AS Covered_Services |
| | 22 | FROM |
| | 23 | project.Customer c |
| | 24 | JOIN |
| | 25 | project.Pol_dog pd ON c.c_id = pd.c_id |
| | 26 | JOIN |
| | 27 | project.Policy p ON pd.policy = p.p_id |
| | 28 | JOIN |
| | 29 | project.Package pkg ON p.package = pkg.code |
| | 30 | LEFT JOIN |
| | 31 | project.Covers cov ON pkg.code = cov.package |
| | 32 | GROUP BY |
| | 33 | c.name, c.email, p.p_id, p.sdate, p.edate, pkg.title, pkg.total |
| | 34 | ORDER BY |
| | 35 | Customer_Name; |
| | 36 | |
| | 37 | |
| | 38 | }}} |
| | 39 | |
| | 40 | === Извештај 2: Приходи од полиси по тип и број на клиенти === |
| | 41 | |
| | 42 | Овој извештај ги прикажува приходите генерирани од полиси поделени по тип на пакет и го вклучува бројот на клиенти кои го користат секој тип на пакет. |
| | 43 | |
| | 44 | {{{#!sql |
| | 45 | |
| | 46 | SELECT |
| | 47 | pkg.type_pol AS Policy_Type, |
| | 48 | COUNT(DISTINCT pd.c_id) AS Total_Customers, |
| | 49 | COUNT(DISTINCT p.p_id) AS Total_Policies, |
| | 50 | SUM(pay.p_amount) AS Total_Revenue |
| | 51 | FROM |
| | 52 | project.Package pkg |
| | 53 | JOIN |
| | 54 | project.Policy p ON pkg.code = p.package |
| | 55 | LEFT JOIN |
| | 56 | project.Pol_dog pd ON p.p_id = pd.policy |
| | 57 | LEFT JOIN |
| | 58 | project.Payment pay ON p.p_id = pay.policy |
| | 59 | GROUP BY |
| | 60 | pkg.type_pol |
| | 61 | ORDER BY |
| | 62 | Total_Revenue DESC, Total_Customers DESC; |
| | 63 | |
| | 64 | |
| | 65 | }}} |
| | 66 | |