wiki:AdvancedReports

Version 10 (modified by 193105, 3 years ago) ( diff )

--

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

Пациент на кој му се извршени највеќе прегледи

create view pacient_najmnogu_pregledi as 
select pacient_id ,covek.ime,covek.prezime, count (pregled.pregled_id) pacientot_bil_na_pregled
from pacient as p 
join pregled as pregled on pregled.covek_pacient_id=p.covek_pacient_id
join covek as covek on covek.covek_id=p.covek_pacient_id
group by p.pacient_id,covek.covek_id;

select pnp.ime, pnp.prezime ,pnp.pacient_id , pnp.pacientot_bil_na_pregled  as broj_pregledi
from pacient_najmnogu_pregledi as pnp 
where pnp.pacientot_bil_na_pregled=
(select max(pacientot_bil_na_pregled) from pacient_najmnogu_pregledi);

Број на издадени упати за оддел

create view broj_na_upati as 
select o.oddel_id ,o.naziv , count(u.oddel_id) as broj_upati
from oddel as o
join upat as u on u.oddel_id=o.oddel_id
group by o.naziv ,o.oddel_id

select  * from broj_na_upati - --пребарување за сите оддели.

select  * from broj_na_upati
where naziv='Kardiologija' - -- пребарување според назив на одделот.


Број на издадени рецепти за пациентите

create view broj_recepti as 
select covek_pacient_id ,c.ime ,c.prezime ,count(recepta_id) as broj_recepti
from recepta as r
join covek as c on c.covek_id=r.covek_pacient_id
group by recepta_id ,c.covek_id

select covek_pacient_id ,ime ,prezime ,broj_recepti
from broj_recepti as br -- за сите пациенти.

select covek_pacient_id ,ime ,prezime ,broj_recepti
from broj_recepti as br
where broj_recepti=(select max(broj_recepti) from broj_recepti) 
--пациент со најголем број на издадени рецепти.

select covek_pacient_id ,ime ,prezime ,broj_recepti
from broj_recepti as br
where covek_pacient_id=9 --може да се пребарува според пациент.

Доктор кој извршил највеќе прегледи

create view br_pregledi_za_sekoj_doktor as 
select p.doktor_id, d.br_licenca, count(p.pregled_id) br_pregledi_od_doktor
from pregled p
join doktor d on p.doktor_id = d.doktor_id
group by p.doktor_id, d.doktor_id ;

select br_p.doktor_id, br_p.br_licenca, c.ime, c.prezime, br_p.br_pregledi_od_doktor as najvekje_pregledi
from br_pregledi_za_sekoj_doktor br_p
join covek c on br_p.doktor_id = c.covek_id
where br_p.br_pregledi_od_doktor = (
                                     select max(br_pregledi_od_doktor) from br_pregledi_za_sekoj_doktor
                                   ) ;

Просечна возраст на пациенти за во даден оддел

Број на доктори во секој оддел

select o.bolnica_id, b.naziv as bolnica, b.grad as bolnica_grad,
o.naziv as oddel, count (d.doktor_id) broj_doktori_vo_oddel
from oddel o 
join doktor d on (o.bolnica_id, o.oddel_id) = (d.bolnica_id, d.oddel_id)
join bolnica b on o.bolnica_id = b.bolnica_id 
group by (o.bolnica_id, o.oddel_id), b.naziv, b.grad ;
Note: See TracWiki for help on using the wiki.