Version 10 (modified by 3 years ago) ( diff ) | ,
---|
Напредни извештаи од базата (SQL и складирани процедури)
Прикажување на најбараната категорија од страна на членовите во последните три недели
select kat.ime_kategorija,count(kat.ime_kategorija) as pozajmeni_knigi_od_kategorija from pozajmica as p join knigi as k on p.id_na_kniga = k.id_na_kniga join e_od as e on k.id_na_kniga = e.id_knigi join kategorija as kat on e.id_na_kategorija = kat.id_na_kategorija where p.datum_na_zemanje between now() - interval'3 weeks' and now() group by 1 order by pozajmeni_knigi_od_kategorija desc fetch first row only;
Прикажување на членот што има прочитано највеќе книги во последниот месец
select ch.ime,ch.prezime,(count(ch.id_chovek)) as pozajmuvanja from pozajmica as p join chlen as chl on p.id_chovek_prave = chl.id_chovek join chovek as ch on chl.id_chovek = ch.id_chovek join knigi as k on p.id_na_kniga = k.id_na_kniga where p.datum_na_zemanje between now() - interval'1 month' and now() group by 1,2 order by pozajmuvanja desc fetch first row only;
Прикажување колку позајмици има направено одредена возрасна група корисници во одреден временски интервал
select count(p.id_na_pozajmica) as pozajmici from pozajmica as p join chlen as chl on p.id_chovek_prave = chl.id_chovek join chovek as ch on chl.id_chovek = ch.id_chovek join knigi as k on p.id_na_kniga = k.id_na_kniga where age(((case when substr(embg,5,1) = '9' then '1' || substr(embg,5,3) else '2' || substr(embg,5,3) end) || '-' || substr(embg,3,2) || '-' || substr(embg,1,2))::date) between interval '20 years' and interval '22 years' and p.datum_na_zemanje between now() - interval'3 weeks' and now()
Прикажување на најдобро оценетата книга
select k.naslov, avg(ocena) as prosecna_ocena from ocena as o join knigi as k on o.ocena_id_kniga = k.id_na_kniga join pozajmica as p on k.id_na_kniga = p.id_na_kniga group by 1 order by prosecna_ocena desc fetch first row only;
Прикажување на најчитаната книга на еден автор за одреден временски период
select * from pozajmica; select k.naslov, a.ime, count(p.id_na_pozajmica) as pozajmuvanja from pozajmica as p join knigi as k on p.id_na_kniga=k.id_na_kniga join izdava as i on k.id_na_kniga = i.id_knigi join avtor as a on i.id_avtor = a.id_na_avtor where a.ime like '%Goce%' and p.datum_na_zemanje between now() - interval'1 month' and now() group by 1,2 order by pozajmuvanja desc fetch first row only;
Note:
See TracWiki
for help on using the wiki.