wiki:AdvancedReports

Version 8 (modified by 201088, 17 months ago) ( diff )

--

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

Прашалник 1

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

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

Прашалник 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

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

Note: See TracWiki for help on using the wiki.