| 1 | = Напредни извештаи од базата (SQL и складирани процедури) = |
| 2 | |
| 3 | === Извештај за сите податоци за клиент, возило, осигурител, почетен датум, краен датум=== |
| 4 | |
| 5 | {{{#!sql |
| 6 | |
| 7 | WITH CustomerPolicyInfo AS ( |
| 8 | SELECT |
| 9 | c.c_id, |
| 10 | c.name AS customer_name, |
| 11 | c.email, |
| 12 | c.type AS customer_type, |
| 13 | p.sdate, |
| 14 | p.edate, |
| 15 | pd.d_embg, |
| 16 | pd.name AS policy_holder_name, |
| 17 | pd.surname AS policy_holder_surname, |
| 18 | pt.title AS package_title, |
| 19 | pt.total AS package_total, |
| 20 | p.p_id as policy_id |
| 21 | FROM |
| 22 | project.Customer c |
| 23 | INNER JOIN project.Pol_dog pd ON c.c_id = pd.c_id |
| 24 | INNER JOIN project.Policy p ON pd.policy = p.p_id |
| 25 | INNER JOIN project.Package pt ON p.package = pt.code |
| 26 | ) |
| 27 | SELECT |
| 28 | cpi.c_id, |
| 29 | cpi.customer_name, |
| 30 | cpi.email, |
| 31 | cpi.customer_type, |
| 32 | cpi.sdate, |
| 33 | cpi.edate, |
| 34 | cpi.d_embg, |
| 35 | cpi.policy_holder_name, |
| 36 | cpi.policy_holder_surname, |
| 37 | cpi.package_title, |
| 38 | cpi.package_total, |
| 39 | cpi.policy_id, |
| 40 | CASE |
| 41 | WHEN po.o_embg IS NOT NULL THEN 'Travel Health' |
| 42 | ELSE 'Auto registration' |
| 43 | END AS policy_type, |
| 44 | po.o_embg AS osi_embg, |
| 45 | po.name AS osi_name, |
| 46 | po.surname AS osi_surname, |
| 47 | po.birthdate AS osi_birthdate, |
| 48 | po.kontakt AS osi_kontakt, |
| 49 | v."type" AS vehicle_type, |
| 50 | v.marka AS vehicle_marka, |
| 51 | v.model AS vehicle_model, |
| 52 | v.license_plate AS license_plate |
| 53 | FROM |
| 54 | CustomerPolicyInfo cpi |
| 55 | LEFT JOIN project.Pol_travel pt ON cpi.policy_id = pt.pol_id |
| 56 | LEFT JOIN project.Pol_osi po ON pt.tr_id = po.policy |
| 57 | LEFT JOIN project.Pol_auto pa ON cpi.policy_id = pa.pol_id |
| 58 | LEFT JOIN project.Vehicle v ON pa.a_id = v.policy |
| 59 | |
| 60 | |
| 61 | }}} |
| 62 | |
| 63 | === Извештај за број на закажани полиси за одреден клиент === |
| 64 | |
| 65 | {{{#!sql |
| 66 | |
| 67 | SELECT |
| 68 | c.c_id, |
| 69 | c.name AS customer_name, |
| 70 | c.email, |
| 71 | COUNT(p.p_id) AS reserved_policies_count |
| 72 | FROM |
| 73 | project.Customer c |
| 74 | LEFT JOIN project.Pol_dog pd ON c.c_id = pd.c_id |
| 75 | LEFT JOIN project.Policy p ON pd.policy = p.p_id |
| 76 | GROUP BY |
| 77 | c.c_id, c.name, c.email |
| 78 | ORDER BY |
| 79 | reserved_policies_count DESC; |
| 80 | }}} |
| 81 | |