Changes between Initial Version and Version 1 of AdvancedReports


Ignore:
Timestamp:
01/24/24 20:36:03 (12 months ago)
Author:
201136
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedReports

    v1 v1  
     1= **Напредни извештаи од базата (SQL и складирани процедури)**
     2
     3=== **Извештаи за клиент според тромесечие, број на купени производи и потрошена сума**
     4{{{#!sql
     5SELECT DISTINCT u.korisnicko_ime,
     6CASE WHEN tabela.quarter=1 THEN tabela.kupeni_proizvodi ELSE 0 END AS prv_kvartal,
     7CASE WHEN tabela.quarter=2 THEN tabela.kupeni_proizvodi ELSE 0 END AS vtor_kvartal,
     8CASE WHEN tabela.quarter=3 THEN tabela.kupeni_proizvodi ELSE 0 END AS tret_kvartal,
     9CASE WHEN tabela.quarter=4 THEN tabela.kupeni_proizvodi ELSE 0 END AS cetvrt_kvartal,
     10
     11CASE WHEN tabela.quarter=1 THEN tabela.suma ELSE 0 END AS prv_kvartal_suma,
     12CASE WHEN tabela.quarter=2 THEN tabela.suma ELSE 0 END AS vtor_kvartal_suma,
     13CASE WHEN tabela.quarter=3 THEN tabela.suma ELSE 0 END AS tret_kvartal_suma,
     14CASE WHEN tabela.quarter=4 THEN tabela.suma ELSE 0 END AS cetvrt_kvartal_suma
     15
     16FROM naracki as n
     17 JOIN kupuvaci as k on k.korisnicko_ime=n.korisnicko_ime
     18 JOIN korisnici AS u ON k.korisnicko_ime = u.korisnicko_ime
     19JOIN parce_e_del_od_naracki as pdm on pdm.id_naracka=n.id_naracka
     20 join parce as p on pdm.id_parce =p.id_parce
     21join proizvodi as pro on p.id_proizvod=pro.id_proizvod
     22 JOIN cena AS c ON c.id_proizvod=pro.id_proizvod
     23 JOIN (
     24
     25SELECT DISTINCT c2.korisnicko_ime, extract(quarter FROM n.data_na_naracka) AS quarter, sum(n.suma) AS suma,
     26count(n.id_naracka) AS kupeni_proizvodi
     27FROM naracki AS n
     28JOIN parce_e_del_od_naracki as pdm on pdm.id_naracka=n.id_naracka
     29 join parce as p on pdm.id_parce =p.id_parce
     30 join proizvodi as pro on p.id_proizvod=pro.id_proizvod
     31 JOIN cena AS c ON c.id_proizvod=pro.id_proizvod
     32JOIN kupuvaci AS c2 ON c2.korisnicko_ime = n.korisnicko_ime
     33GROUP BY 1,2
     34) AS tabela ON u.korisnicko_ime = tabela.korisnicko_ime
     35}}}
     36=== **Извештај за вработените,нивната најдобра нарачка,бројот на нарачки што ги направиле и нарачката која што им има најголема гаранција **
     37{{{#!sql
     38select d.korisnicko_ime,
     39        max(na.suma) as najdobra_naracka, broj.broj_naracki as broj_naracki,max(najgolema_garancija.garan) as najgolema_garancija
     40        from dostavuvaci d
     41        left join
     42        (
     43                select  distinct d.korisnicko_ime as dostavuvac,k.e_posta as email, d2.id_dostavuvanja as broj_dostava
     44                ,n.suma 
     45                from dostavuvaci  d
     46                left join korisnici k on k.korisnicko_ime=d.korisnicko_ime
     47                left join dostavuvanja  d2 on d2.korisnicko_ime = d.korisnicko_ime
     48                left join naracki n on n.id_naracka =d2.id_naracka
     49                left join parce_e_del_od_naracki pedon on pedon.id_naracka =n.id_naracka
     50                left join parce p3 on p3.id_parce=pedon.id_parce
     51                left join proizvodi p4 on p4.id_proizvod=p3.id_proizvod
     52                left join cena c on c.id_proizvod=p4.id_proizvod
     53               
     54        ) as na on d.korisnicko_ime = na.dostavuvac
     55        left join
     56        (
     57           select d.korisnicko_ime,n.e_posta,count(dost.id_dostavuvanja) as broj_naracki
     58           from dostavuvaci as d
     59           join korisnici as n on d.korisnicko_ime=n.korisnicko_ime
     60           join dostavuvanja as dost on d.korisnicko_ime=dost.korisnicko_ime
     61           group by d.korisnicko_ime,n.korisnicko_ime
     62        )
     63        as broj on d.korisnicko_ime = broj.korisnicko_ime
     64       
     65       left join
     66       (
     67          select d.korisnicko_ime as dostavuvac,(g.datum_do-g.datum_od) as garan
     68          from dostavuvaci d
     69          left join dostavuvanja  d2 on d2.korisnicko_ime = d.korisnicko_ime
     70          left join naracki n on n.id_naracka =d2.id_naracka
     71          left join parce_e_del_od_naracki pedon on pedon.id_naracka =n.id_naracka
     72          left join parce p3 on p3.id_parce=pedon.id_parce
     73          left join proizvodi p4 on p4.id_proizvod=p3.id_proizvod
     74          left join garancija g on g.id_proizvod =p4.id_proizvod
     75       ) as najgolema_garancija on najgolema_garancija.dostavuvac=d.korisnicko_ime
     76       
     77       
     78        group by d.korisnicko_ime,broj.broj_naracki
     79        order by najdobra_naracka desc
     80}}}
     81
     82=== **Извештај за категориите,број на производи по категорија според времетраењето на гаранцијата **
     83{{{#!sql
     84select k.ime ,
     85coalesce(prv.zbir_1,0) as pomalku_od_godina, coalesce(vtor.zbir_2,0) as godina,
     86coalesce(tret.zbir_3,0) as poveke_od_godina
     87from kategorii  k
     88join proizvodi p on p.id_proizvod=k.id_proizvod
     89join garancija g on g.id_proizvod=p.id_proizvod
     90left join (
     91select k.ime ,p.ime_proizvod , count(p.id_proizvod)*p.kolicina  as zbir_1
     92from kategorii k
     93join proizvodi p on p.id_proizvod=k.id_proizvod
     94join garancija g on g.id_proizvod=p.id_proizvod  and (g.datum_do-g.datum_od) < interval'365 days'
     95group by k.ime,p.ime_proizvod,p.kolicina
     96) as prv on  k.ime = prv.ime
     97left join (
     98select k.ime ,p.ime_proizvod ,count(p.id_proizvod)*p.kolicina  as zbir_2
     99from kategorii k
     100join proizvodi p on p.id_proizvod=k.id_proizvod
     101join garancija g on g.id_proizvod=p.id_proizvod  and (g.datum_do-g.datum_od) between  interval'365 days' and 2*interval'365 days'
     102group by k.ime,p.ime_proizvod,p.kolicina
     103) as vtor on k.ime = vtor.ime
     104left join (
     105select k.ime ,p.ime_proizvod , count(p.id_proizvod)*p.kolicina  as zbir_3
     106from kategorii k
     107join proizvodi p on p.id_proizvod=k.id_proizvod
     108join garancija g on g.id_proizvod=p.id_proizvod  and (g.datum_do-g.datum_od) > interval' 2 years'
     109group by k.ime,p.ime_proizvod,p.kolicina
     110
     111) as tret on k.ime=tret.ime
     112
     113group by k.ime, prv.zbir_1, vtor.zbir_2, tret.zbir_3
     114}}}
     115
     116=== **Извештај за компаниите,број на купени производи од секоја компанија според тромесечие **
     117{{{#!sql
     118
     119select k.ime ,
     120coalesce(prv.zbir_1,0) as prv_kvartal, coalesce(vtor.zbir_2,0) as vtor_kvartal,
     121coalesce(tret.zbir_3,0) as tret_kvartal, coalesce(cetvrt.zbir_4,0) as cetvrt_kvartal
     122from kompanija k
     123join proizvodi p on p.ime = k.ime
     124join parce as par on par.id_proizvod =p.id_proizvod
     125join parce_e_del_od_naracki pedon on pedon.id_parce =par.id_parce
     126join naracki as n on n.id_naracka =pedon.id_parce
     127left join (
     128select k.ime ,p.ime_proizvod , count(pedon.id_parce)  as zbir_1
     129from kompanija k
     130join proizvodi p on p.ime = k.ime
     131join parce as par on par.id_proizvod =p.id_proizvod
     132join parce_e_del_od_naracki pedon on pedon.id_parce =par.id_parce
     133join naracki as n on n.id_naracka =pedon.id_naracka and n.data_na_naracka between to_date(concat('01-01-',extract(year from now())),'dd-mm-yyyy') and to_date(concat('31-03-',extract(year from now())),'dd-mm-yyyy')
     134group by k.ime,p.ime_proizvod
     135) as prv on  k.ime = prv.ime
     136left join (
     137select k.ime ,p.ime_proizvod ,count(pedon.id_parce)   as zbir_2
     138from kompanija k
     139join proizvodi p on p.ime = k.ime
     140join parce as par on par.id_proizvod =p.id_proizvod
     141join parce_e_del_od_naracki pedon on pedon.id_parce =par.id_parce
     142join naracki as n on n.id_naracka =pedon.id_naracka and n.data_na_naracka between to_date(concat('01-04-',extract(year from now())),'dd-mm-yyyy') and to_date(concat('30-06-',extract(year from now())),'dd-mm-yyyy')
     143group by k.ime,p.ime_proizvod
     144) as vtor on k.ime = vtor.ime
     145left join (
     146select k.ime ,p.ime_proizvod , count(pedon.id_parce)  as zbir_3
     147from kompanija k
     148join proizvodi p on p.ime = k.ime
     149join parce as par on par.id_proizvod =p.id_proizvod
     150join parce_e_del_od_naracki pedon on pedon.id_parce =par.id_parce
     151join naracki as n on n.id_naracka =pedon.id_naracka  and  n.data_na_naracka between to_date(concat('01-07-',extract(year from now())),'dd-mm-yyyy') and to_date(concat('30-09-',extract(year from now())),'dd-mm-yyyy')
     152group by k.ime,p.ime_proizvod
     153) as tret on k.ime=tret.ime
     154left join (
     155select k.ime ,p.ime_proizvod, count(pedon.id_parce)   as zbir_4
     156from kompanija k
     157join proizvodi p on p.ime = k.ime
     158join parce as par on par.id_proizvod =p.id_proizvod
     159join parce_e_del_od_naracki pedon on pedon.id_parce =par.id_parce
     160join naracki as n on n.id_naracka =pedon.id_naracka and  n.data_na_naracka between to_date(concat('01-10-',extract(year from now())),'dd-mm-yyyy') and to_date(concat('31-12-',extract(year from now())),'dd-mm-yyyy')
     161group by k.ime,p.ime_proizvod
     162 
     163) as cetvrt on k.ime=cetvrt.ime
     164group by k.ime, prv.zbir_1, vtor.zbir_2, tret.zbir_3, cetvrt.zbir_4
     165
     166
     167}}}