wiki:AdvancedReports

Version 14 (modified by 201063, 17 months ago) ( diff )

--

Напредни извештаи од базата (SQL и складирани процедури)

Прашалник 1

За секое прифатилиште, идентификациски број, име, електронска пошта, телефонски број, име на организацијата во која прифаќа тоа прифатилиште и просечен број на посвојувачи кои се верификувани од страна на вработени во тоа прифатилиште.

select 
    sh.id_shelter,
    sh.name_shelter,
    sh.email_shelter,
    sh.telephone_shelter,
    org.name_organisation,
    q2.average_verified_adopters
from
        (
                select 
                        shelter.id_shelter,
                        avg(adopters_verified) as average_verified_adopters
                from 
                        shelter
                left join
                        (
                                select
                                        employee.id_user as employee_id,
                                        employee.id_shelter as shelter_id,
                                        count(distinct adopter.id_user) as adopters_verified
                                from 
                                        employee
                                join adopter
                                        on adopter.verified_by_employee = employee.id_user
                                group by 
                                        employee.id_user
                        ) as q1
                        on q1.shelter_id = shelter.id_shelter 
                group by 
                        shelter.id_shelter
                order by 
                        average_verified_adopters desc
        ) as q2
                
join shelter as sh
        on sh.id_shelter = q2.id_shelter

join organisation as org
        on org.id_organisation = sh.id_organisation

Прашалник 2

(text here)

--sql here

Прашалник 3

(text here)

--sql here

Прашалник 4

(text here)

--sql here

Прашалник 5

Приказ за секоја година, тип на милениче со најголем број на посвојувања

select q2.god as godina, q2.maximum as max, 
        case 
        when q3.species = 0 then 'cat'
        when q3.species = 1 then 'dog'
        when q3.species = 2 then 'bird'
        end as species
        
from
        (       select q1.godina as god, max(broj_posvojuvanja) as maximum from
                (
                --posvojuvanja po godini i tipovi na milenichinja
                select extract(year from a.start_date) as godina, p2.species, count(p2.id_pet) as broj_posvojuvanja
                from adoption a 
                join pet p2 on a.id_adoption = p2.id_adoption 
                where (end_date_foster is null) and (a.approved is true)
                group by godina, p2.species
                order by godina
                ) q1
                group by godina
        )q2
        join
        (
        select extract(year from a.start_date) as godina, p2.species, count(p2.id_pet) as broj_posvojuvanja
                from adoption a
                join pet p2 on a.id_adoption = p2.id_adoption 
                where (end_date_foster is null) and (a.approved is true)
                group by godina, p2.species
                order by godina
        ) q3
on q2.god = q3.godina and q2.maximum = q3.broj_posvojuvanja

Прашалник 6

(text here)

--sql here

Прашалник 7

За секој посвојувач, број на посвоени миленичиња од секој вид (мачки, кучиња, птици) и вкупен број посвоени миленици. Табелата е подредена во опаѓачки редослед според бројот на посвојувања т.ш. посвојувачот со највеќе посвојувања е во првиот ред.

select 
        ut.name_user as posvojuvac, 
        count(distinct pm.id_pet) as broj_posvoeni_macki,
        count(distinct pd.id_pet) as broj_posvoeni_kucinja,
        count(distinct pp.id_pet) as broj_posvoeni_ptici,
        count(distinct p.id_pet) as vkupno_posvoeni_milenici
from
        adopter a
join 
        user_table ut on a.id_user = ut.id_user
left join 
        adoption ad on ad.id_adopter = a.id_user
left join 
        pet pm on pm.id_adoption = ad.id_adoption
        and
        pm.species = 0
left join 
        pet pd on pd.id_adoption = ad.id_adoption
        and
        pd.species = 1
left join 
        pet pp on pp.id_adoption = ad.id_adoption
        and
        pp.species = 2
left join
        pet p on p.id_adoption = ad.id_adoption 
group by 
        a.id_user, ut.name_user
order by 
        vkupno_posvoeni_milenici desc

Назад кон почетна

Note: See TracWiki for help on using the wiki.