Напредни извештаи од базата (SQL и складирани процедури)
Број на договори, склучени во предходните 3 месеци и процечна цена на договор.
select distinct count(d.iddog) as broj_dogovori,
avg(cenadog) as procena_cena
from dogovori d
left join rezervacii r on
r.iddog=d.iddog
left join smetki s on
s.iddog=d.iddog
where
sklucenna between now() - interval '3 months' and now()
group by d.iddog
Приказ за највредниот вработен (Продавач) во текот на минатата година земено од сегашниот датум, кој бил одговорен за најголемата издадена сметка.
select v.imev as ime_vraboten,
max(s.cenasm) as max_smetka
from vraboteni v
left join izdavsaloni i
on i.idis=v.idis
left join prodavachi p
on p.embgvp=v.embgv
left join naplati n
on n.embgvp=p.embgvp
left join smetki s
on s.brsm=n.brsm
where
( s.datumsm between now() - interval '1 year' and now() )
and
exists (
select p.embgvp from prodavachi p2
where p.embgvp=n.embgvp
)
and
exists (
select n.brsm from naplati n2
where n.brsm =s.brsm
)
group by v.imev
Приказ на сите направени материјални штети, на возила по Категории (Категорија: Комбиња - немаат направени материјални штети)
select *
from
(select m2.idvozi as id_avtomobil,
m2.cenams as cena_steta_a
from vozila v
left join avtomobili a
on a.idvozia=v.idvozi
left join motori m
on m.idvozim=v.idvozi
left join kombinja k
on k.idvozik=v.idvozi
left join msteti m2
on m2.idvozi=v.idvozi
where
exists (
select a.idvozia from avtomobili
where a.idvozia=m2.idvozi
)
group by m2.idvozi, m2.cenams
) as avtomobili,
(
select m2.idvozi as id_motor,
m2.cenams as cena_steta_m
from vozila v
left join avtomobili a
on a.idvozia=v.idvozi
left join motori m
on m.idvozim=v.idvozi
left join kombinja k
on k.idvozik=v.idvozi
left join msteti m2
on m2.idvozi=v.idvozi
where
exists (
select m.idvozim from motori
where m.idvozim =m2.idvozi
)
group by m2.idvozi, m2.cenams
) as motori
Извештај за најпопуларна локација за паркирани возила, во предходните 3 години, и колку пати е употребена.
select distinct l.adresalok,
count(l.adresalok)
from vozila v
left join parkirani p
on p.idvozi=v.idvozi
left join izdavsaloni i
on i.idis=p.idis
left join lokacii l
on l.idis=i.idis
where
p.od between now() - interval '3 years' and now()
and
exists (
select v.idvozi from vozila v2
where v.idvozi=l.idlok
)
group by l.adresalok
Last modified
3 years ago
Last modified on 02/07/23 17:34:15
Note:
See TracWiki
for help on using the wiki.
