Version 1 (modified by 3 years ago) ( diff ) | ,
---|
Напредни извештаи од базата (SQL и складирани процедури)
Листа на користени услуги со вкупниот број на резервации и просечна оцена како и нивната единечна цена и вкупната заработка по услуга
select u.usluga_id,u.dejnost, ( select cast(u.cena as numeric) ) cena_za_usluga, coalesce(( select count(usluga_id) broj_rezervacii from rezervacija_uslugi group by usluga_id having usluga_id = u.usluga_id ) ,0) broj_rezervacii, ( select count(usluga_id)*cast(u.cena as numeric) broj_rezervacii from rezervacija_uslugi group by usluga_id having usluga_id = u.usluga_id ) suma_ceni_usluga, ( select avg(o.vrednost) from ocena as o group by o.usluga_id having o.usluga_id = u.usluga_id ) ocena from uslugi as u
Приказ на клиенти со број на резервирани термини во опаѓачки редослед и број на реализирани начини на уплата
select k.user_id, k.ime , k.prezime , count(r.br_rez) as br_rezTermini , count(CASE WHEN r.uplata_id isnull THEN 0 END) as uplata_voGotovo, count(CASE WHEN r.uplata_id notnull THEN 0 END) as uplata_online from klienti as k left join rezervacija as r on k.user_id = r.user_id_klient group by 1,2,3 order by br_reztermini desc;
Вработен кој имал најмногу резервирани термини кои ги извршил во минатата година
create view vkbr_rez_vraboteni as select v.user_id , v.first_name,v.prezime, count(r.br_rez) as br_rezervacii from vraboteni as v left join termini as t on v.user_id = t.user_id_vraboten left join rezervacija as r on t.termin_id = r.termin_id -- tuka bez left gi dava tie sto imaat samo rezervacii left join rezervacija_uslugi as ru on r.br_rez = ru.br_rez where extract (year from t.pocetok) = extract (year from now() - interval '1 year') group by v.user_id select br.user_id , br.first_name , br.prezime , br.br_rezervacii from vkbr_rez_vraboteni br where br.br_rezervacii = (select max(br_rezervacii) from vkbr_rez_vraboteni)
Note:
See TracWiki
for help on using the wiki.