| Version 2 (modified by , 21 months ago) ( diff ) |
|---|
Напредни извештаи од базата (SQL и складирани процедури)
Извештај за употребата на пакети - последните 6 месеци, вклучувајќи ги информациите за насловот на пакетот, бројот на употреби, видот на полисата , и податоците за пакетот, сортирано според бројот на употреби во опаѓачки редослед
SELECT
p2.title as Package_title,
P.package,
COUNT(*) AS usage_count,
CASE
WHEN Pa.pol_id IS NOT NULL THEN 'Auto Registration'
WHEN Pt.pol_id IS NOT NULL THEN 'Travel Health'
ELSE ''
END AS policy_type
FROM
project.Policy AS P
LEFT JOIN
project.Pol_dog AS Pd ON P.p_id = Pd.policy
LEFT JOIN
project.Pol_auto AS Pa ON P.p_id = Pa.pol_id
LEFT JOIN
project.Pol_travel AS Pt ON P.p_id = Pt.pol_id
LEFT JOIN
project.Pol_osi AS Po ON P.p_id = Po.policy
left join
project.package p2 on p.package=p2.code
WHERE
P.sdate >= CURRENT_DATE - INTERVAL '6 months'
GROUP BY
P.package, policy_type, p2.title
ORDER BY
usage_count DESC;
Извештај за сите податоци за клиент, возило, осигурител, почетен датум, краен датум
WITH CustomerPolicyInfo AS (
SELECT
c.c_id,
c.name AS customer_name,
c.email,
c.type AS customer_type,
p.sdate,
p.edate,
pd.d_embg,
pd.name AS policy_holder_name,
pd.surname AS policy_holder_surname,
pt.title AS package_title,
pt.total AS package_total,
p.p_id as policy_id
FROM
project.Customer c
INNER JOIN project.Pol_dog pd ON c.c_id = pd.c_id
INNER JOIN project.Policy p ON pd.policy = p.p_id
INNER JOIN project.Package pt ON p.package = pt.code
)
SELECT
cpi.c_id,
cpi.customer_name,
cpi.email,
cpi.customer_type,
cpi.sdate,
cpi.edate,
cpi.d_embg,
cpi.policy_holder_name,
cpi.policy_holder_surname,
cpi.package_title,
cpi.package_total,
cpi.policy_id,
CASE
WHEN po.o_embg IS NOT NULL THEN 'Travel Health'
ELSE 'Auto registration'
END AS policy_type,
po.o_embg AS osi_embg,
po.name AS osi_name,
po.surname AS osi_surname,
po.birthdate AS osi_birthdate,
po.kontakt AS osi_kontakt,
v."type" AS vehicle_type,
v.marka AS vehicle_marka,
v.model AS vehicle_model,
v.license_plate AS license_plate
FROM
CustomerPolicyInfo cpi
LEFT JOIN project.Pol_travel pt ON cpi.policy_id = pt.pol_id
LEFT JOIN project.Pol_osi po ON pt.tr_id = po.policy
LEFT JOIN project.Pol_auto pa ON cpi.policy_id = pa.pol_id
LEFT JOIN project.Vehicle v ON pa.a_id = v.policy
Извештај за број на закажани полиси за одреден клиент
SELECT
c.c_id,
c.name AS customer_name,
c.email,
COUNT(p.p_id) AS reserved_policies_count
FROM
project.Customer c
LEFT JOIN project.Pol_dog pd ON c.c_id = pd.c_id
LEFT JOIN project.Policy p ON pd.policy = p.p_id
GROUP BY
c.c_id, c.name, c.email
ORDER BY
reserved_policies_count DESC;
Note:
See TracWiki
for help on using the wiki.
