wiki:Advancedreports

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

Извештај за број на закажани настани во секој од последните 3 месеци поединечно

select sum(ovoj_mesec.broj_nastani) as zakazani_nastani_ovoj_mesec, sum(prethoden_mesec.broj_nastani) as zakazani_nastani_prethoden_mesec, sum(predprethoden_mesec.broj_nastani) as zakazani_nastani_predprethoden_mesec
from nastani as n 
left join(
        select n.nastan_id as nastan_id, n.datum as nastan_datum, n.tip as tip_nastan, kb.ime as ime_bend, kk.ime as ime_ketering, kf.ime as ime_fotograf , count (*) as broj_nastani
        from nastani as n 
        left join bend_sviri_nastan bsn on bsn.nastan_id = n.nastan_id 
        left join bendovi as b on b.korisnik_id = bsn.korisnik_id 
        left join korisnici kb on kb.korisnik_id = b.korisnik_id 
        
        left join ketering_rezervira_nastan krn on krn.nastan_id = n.nastan_id 
        left join keterinzi as k on k.korisnik_id = krn.korisnik_id 
        left join korisnici kk on kk.korisnik_id = k.korisnik_id 
        
        left join fotograf_slika_nastan fsn on fsn.nastan_id = n.nastan_id
        left join fotografi as f on f.korisnik_id = fsn.korisnik_id 
        left join korisnici kf on kf.korisnik_id = f.korisnik_id 
        
        where extract(month from n.datum) = extract(month from now()) and extract(year from n.datum) = extract(year from now())
        
        group by 1,2,3,4,5,6

) as ovoj_mesec on n.nastan_id = ovoj_mesec.nastan_id and n.tip = ovoj_mesec.tip_nastan

left join( 
        select n.nastan_id as nastan_id, n.datum as nastan_datum, n.tip as tip_nastan, kb.ime as ime_bend, kk.ime as ime_ketering, kf.ime as ime_fotograf, count (*)  as broj_nastani
        from nastani as n 
        left join bend_sviri_nastan bsn on bsn.nastan_id = n.nastan_id 
        left join bendovi as b on b.korisnik_id = bsn.korisnik_id 
        left join korisnici kb on kb.korisnik_id = b.korisnik_id 
        
        left join ketering_rezervira_nastan krn on krn.nastan_id = n.nastan_id 
        left join keterinzi as k on k.korisnik_id = krn.korisnik_id 
        left join korisnici kk on kk.korisnik_id = k.korisnik_id 
        
        left join fotograf_slika_nastan fsn on fsn.nastan_id = n.nastan_id
        left join fotografi as f on f.korisnik_id = fsn.korisnik_id 
        left join korisnici kf on kf.korisnik_id = f.korisnik_id 
        
        where extract(month from n.datum) = extract(month from now() - interval '1 month') and extract(year from n.datum) = extract(year from now()- interval '1 month')
        group by 1,2,3,4,5,6

) as prethoden_mesec on n.nastan_id = prethoden_mesec.nastan_id and n.tip = prethoden_mesec.tip_nastan

left join( 
        select n.nastan_id as nastan_id, n.datum as nastan_datum, n.tip as tip_nastan, kb.ime as ime_bend, kk.ime as ime_ketering, kf.ime as ime_fotograf, count (*)  as broj_nastani
        from nastani as n 
        left join bend_sviri_nastan bsn on bsn.nastan_id = n.nastan_id 
        left join bendovi as b on b.korisnik_id = bsn.korisnik_id 
        left join korisnici kb on kb.korisnik_id = b.korisnik_id 
        
        left join ketering_rezervira_nastan krn on krn.nastan_id = n.nastan_id 
        left join keterinzi as k on k.korisnik_id = krn.korisnik_id 
        left join korisnici kk on kk.korisnik_id = k.korisnik_id 
        
        left join fotograf_slika_nastan fsn on fsn.nastan_id = n.nastan_id
        left join fotografi as f on f.korisnik_id = fsn.korisnik_id 
        left join korisnici kf on kf.korisnik_id = f.korisnik_id 
        
        where extract(month from n.datum) = extract(month from now() - interval '2 month') and extract(year from n.datum) = extract(year from now()- interval '2 month')
        group by 1,2,3,4,5,6
) as predprethoden_mesec on n.nastan_id = predprethoden_mesec.nastan_id and n.tip = predprethoden_mesec.tip_nastan

Извештај за број на типови на алкохолни пијалоци конзумирани на секој настан заедно со името на клиентот кој го закажал настанот, кетеринг фирмата која служела и бројот на келнери сортирани според датумот во растечки редослед, во изминатата година

select n.nastan_id, n.datum, lista_klienti.ime as ime_klient, lista_keterinzi.ime as ime_ketering, count(lista_pijaloci) as broj_alkoholni_pijaloci, lista_keterinzi.kolicina as broj_kelneri
from nastani as n

join (
        select * from korisnici as k 
        join klienti as kl on k.korisnik_id = kl.korisnik_id_korisnici 
) as lista_klienti on n.korisnik_id_klienti = lista_klienti.korisnik_id

join(
        select * from korisnici as k
        join keterinzi as ke on k.korisnik_id = ke.korisnik_id 
        join ketering_rezervira_nastan as krn on ke.korisnik_id = krn.korisnik_id  
) as lista_keterinzi on n.nastan_id = lista_keterinzi.nastan_id

join (
        select * from korisnici as k 
        join keterinzi as ke on k.korisnik_id = ke.korisnik_id 
        join ketering_nudi_produkt as knp on ke.korisnik_id = knp.korisnik_id
        join produkti as p on knp.produkt_id = p.produkt_id 
        join pijaloci as pij on p.produkt_id = pij.produkt_id 
        join ketering_rezervira_nastan as krn on ke.korisnik_id = krn.korisnik_id  
) as lista_pijaloci on n.nastan_id = lista_pijaloci.nastan_id

where lista_pijaloci.dali_alkoholen = true and n.datum between now()- interval '12 months' and now ()
group by 1,2,3,4,6
order by 2 asc

Извештај за број на настани од одреден тип за секоја кетеринг фирма, просечен број на келнери што служеле, број на локации кај што биле одржувани и вкупен промет од тој тип настани за таа кетеринг фирма

select ko.ime as ime_keterinzi, n.tip as tip_nastan, count(*) as broj_nastani_od_toj_tip, 
round(avg(krn.kolicina)) as prosecno_kelneri, count(n.adresa) as broj_lokacii,
vkupen_promet_od_toj_tip_nastani
from nastani as n

join ketering_rezervira_nastan krn on n.nastan_id = krn.nastan_id 
join keterinzi as k on krn.korisnik_id = k.korisnik_id 
join korisnici as ko on k.korisnik_id = ko.korisnik_id 
join(
    select ko.ime as ime_keterinzi, n.tip as tip_nastan, 
        sum(k.cena) as vkupen_promet_od_toj_tip_nastani from nastani as n
        join ketering_rezervira_nastan krn on n.nastan_id = krn.nastan_id 
        join keterinzi as k on krn.korisnik_id = k.korisnik_id 
        join korisnici as ko on k.korisnik_id = ko.korisnik_id 
        group by 1 ,2
        order by ime_keterinzi
) as promet_ketering on ko.ime = promet_ketering.ime_keterinzi and n.tip = promet_ketering.tip_nastan

group by 1, 2, 6
order by ime_keterinzi

Извештај за приходи за секој квартал од годината

select
(
        select sum(ke.cena + b.cena + f.cena) as vkupna_cena_nastan
        
        from nastani as n
        
        join bend_sviri_nastan bsn on n.nastan_id = bsn.nastan_id 
        join bendovi as b on bsn.korisnik_id = b.korisnik_id 
        join ketering_rezervira_nastan krn on n.nastan_id = krn.nastan_id 
        join fotograf_slika_nastan fsn on n.nastan_id = fsn.nastan_id 
        join fotografi as f on fsn.korisnik_id = f.korisnik_id 
        join keterinzi as ke on krn.korisnik_id = ke.korisnik_id

        where extract(month from n.datum) between 1 and 3

) as prihod_prv_kvartal,
(
        select sum(ke.cena + b.cena + f.cena) as vkupna_cena_nastan from nastani as n
        
        join bend_sviri_nastan bsn on n.nastan_id = bsn.nastan_id 
        join bendovi as b on bsn.korisnik_id = b.korisnik_id 
        join ketering_rezervira_nastan krn on n.nastan_id = krn.nastan_id 
        join fotograf_slika_nastan fsn on n.nastan_id = fsn.nastan_id 
        join fotografi as f on fsn.korisnik_id = f.korisnik_id 
        join keterinzi as ke on krn.korisnik_id = ke.korisnik_id
        
        where extract(month from n.datum) between 4 and 6
        
) as prihod_vtor_kvartal,
(
        select sum(ke.cena + b.cena + f.cena) as vkupna_cena_nastan from nastani as n
        
        join bend_sviri_nastan bsn on n.nastan_id = bsn.nastan_id 
        join bendovi as b on bsn.korisnik_id = b.korisnik_id 
        join ketering_rezervira_nastan krn on n.nastan_id = krn.nastan_id 
        join fotograf_slika_nastan fsn on n.nastan_id = fsn.nastan_id 
        join fotografi as f on fsn.korisnik_id = f.korisnik_id 
        join keterinzi as ke on krn.korisnik_id = ke.korisnik_id
        
        where extract(month from n.datum) between 7 and 9
        
) as prihod_tret_kvartal, 
(
        select sum(ke.cena + b.cena + f.cena) as vkupna_cena_nastan from nastani as n

        join bend_sviri_nastan bsn on n.nastan_id = bsn.nastan_id 
        join bendovi as b on bsn.korisnik_id = b.korisnik_id 
        join ketering_rezervira_nastan krn on n.nastan_id = krn.nastan_id 
        join fotograf_slika_nastan fsn on n.nastan_id = fsn.nastan_id 
        join fotografi as f on fsn.korisnik_id = f.korisnik_id 
        join keterinzi as ke on krn.korisnik_id = ke.korisnik_id
        
        where extract(month from n.datum) between 10 and 12
        
) as prihod_cetvrt_kvartal
Last modified 16 months ago Last modified on 01/27/23 16:16:24
Note: See TracWiki for help on using the wiki.