= Напредни извештаи од базата (SQL и складирани процедури) == Извештај 1 За секое прифатилиште, идентификациски број, име, електронска пошта, телефонски број, име на организацијата во која припаѓа тоа прифатилиште и просечен број на посвојувачи кои се верификувани од страна на вработени во тоа прифатилиште. {{{#!sql select q2.id_shelter, q2.name_shelter, q2.email_shelter, q2.telephone_shelter, org.name_organisation as name_of_organisation, q2.average_verified_adopters from ( select shelter.id_shelter, shelter.name_shelter, shelter.email_shelter, shelter.telephone_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 ) as q2 left join shelter as sh on sh.id_shelter = q2.id_shelter left join organisation as org on org.id_organisation = sh.id_organisation order by q2.average_verified_adopters desc }}} == Извештај 2 За секое посвојување, идентификациски број, почетен и краен датум и статус. За посвојувачот се прикажуваат името, електронската пошта и телефонскиот број. За посвојувањето се пресметуваат број на миленици, број на различни видови (мачки, кучиња, птици) и севкупен број на терапии и интервенции потребни на сите миленици. {{{#!sql select q2.id_adoption as id, q2.start_date, q2.end_date_foster, q2.status, user_table.name_user as adopter_name, user_table.email_user as adopter_email, user_table.telephone_user as adopter_phone, q2.number_of_pets, q2.number_of_species, q2.total_therapies, q2.total_interventions from ( select adoption.id_adoption, adoption.start_date, adoption.end_date_foster, case when adoption.approved = false then 'under review' when adoption.approved = true then 'approved' end as status, count(distinct q1.id_pet) as number_of_pets, count(distinct q1.species) as number_of_species, sum(q1.therapies) as total_therapies, sum(q1.interventions) as total_interventions from ( select pet.id_pet, pet.name_pet, pet.id_adoption, pet.species, count(distinct pnt.id_therapy) as therapies, count(distinct description) as interventions from pet left join pet_needs_therapy pnt on pnt.id_pet = pet.id_pet left join pet_needs_intervention_in_vet_clinic pni on pni.id_pet = pet.id_pet group by pet.id_pet ) as q1 right join adoption on q1.id_adoption = adoption.id_adoption group by adoption.id_adoption ) as q2 left join adoption on adoption.id_adoption = q2.id_adoption left join adopter on adopter.id_user = adoption.id_adopter left join user_table on user_table.id_user = adopter.id_user }}} == Извештај 3 Приказ на секоја храна која ја јадат миленици со ниска физичка активност кои примаат терапии. За секоја од нив да се прикаже и вкупниот број такви миленици. {{{#!sql select food.name_food as food_name, sum(q2.has_therapies) as total_pets from ( select q1.pet_id, q1.has_therapies from ( select pet.id_pet as pet_id, count(therapy.id_therapy) as has_therapies from pet join pet_needs_therapy pnt on pnt.id_pet = pet.id_pet join therapy on therapy.id_therapy = pnt.id_therapy group by pet.id_pet ) as q1 join personal_profile on q1.pet_id = personal_profile.id_pet where personal_profile.physical_activity = 0 ) as q2 join pet_preferably_eats_food ppef on ppef.id_pet = q2.pet_id join food on food.id_food = ppef.id_food group by food.id_food order by total_pets }}} == Извештај 4 (text here) {{{#!sql --sql here }}} == Извештај 5 Приказ за секоја година, тип на милениче со најголем број на посвојувања {{{#!sql 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 --sql here }}} == Извештај 7 За секој посвојувач, број на посвоени миленичиња од секој вид (мачки, кучиња, птици) и вкупен број посвоени миленици. Табелата е подредена во опаѓачки редослед според бројот на посвојувања т.ш. посвојувачот со највеќе посвојувања е во првиот ред. {{{#!sql 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 }}} [https://develop.finki.ukim.mk/projects/PAW5/wiki/WikiStart Назад кон почетна]