| 5 | | SELECT DISTINCT u.korisnicko_ime, |
| 6 | | CASE WHEN tabela.quarter=1 THEN tabela.kupeni_proizvodi ELSE 0 END AS prv_kvartal, |
| 7 | | CASE WHEN tabela.quarter=2 THEN tabela.kupeni_proizvodi ELSE 0 END AS vtor_kvartal, |
| 8 | | CASE WHEN tabela.quarter=3 THEN tabela.kupeni_proizvodi ELSE 0 END AS tret_kvartal, |
| 9 | | CASE WHEN tabela.quarter=4 THEN tabela.kupeni_proizvodi ELSE 0 END AS cetvrt_kvartal, |
| | 5 | SELECT |
| | 6 | U.name AS UserName, |
| | 7 | DATE_TRUNC('quarter', D.date) AS QuarterStart, |
| | 8 | AVG(COALESCE(I.calories, 0)) AS AvgCalories, |
| | 9 | AVG(COALESCE(I.fats, 0)) AS AvgFats, |
| | 10 | AVG(COALESCE(I.protein, 0)) AS AvgProteins, |
| | 11 | AVG(COALESCE(I.carbs, 0)) AS AvgCarbs |
| | 12 | FROM |
| | 13 | _User U |
| | 14 | JOIN |
| | 15 | _UserHas_Day UHD ON U.uID = UHD.uID |
| | 16 | JOIN |
| | 17 | _Day D ON UHD.dID = D.dID |
| | 18 | LEFT JOIN |
| | 19 | _DayHasMeal DHM ON D.dID = DHM.dID |
| | 20 | LEFT JOIN |
| | 21 | Meal M ON DHM.mID = M.mID |
| | 22 | LEFT JOIN |
| | 23 | MealHasIngredient MHI ON M.mID = MHI.mID |
| | 24 | LEFT JOIN |
| | 25 | Ingredient I ON MHI.iID = I.iID |
| | 26 | GROUP BY |
| | 27 | U.name, DATE_TRUNC('quarter', D.date) |
| | 28 | ORDER BY |
| | 29 | U.name, QuarterStart; |
| 11 | | CASE WHEN tabela.quarter=1 THEN tabela.suma ELSE 0 END AS prv_kvartal_suma, |
| 12 | | CASE WHEN tabela.quarter=2 THEN tabela.suma ELSE 0 END AS vtor_kvartal_suma, |
| 13 | | CASE WHEN tabela.quarter=3 THEN tabela.suma ELSE 0 END AS tret_kvartal_suma, |
| 14 | | CASE WHEN tabela.quarter=4 THEN tabela.suma ELSE 0 END AS cetvrt_kvartal_suma |
| 15 | | |
| 16 | | FROM 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 |
| 19 | | JOIN 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 |
| 21 | | join 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 | | |
| 25 | | SELECT DISTINCT c2.korisnicko_ime, extract(quarter FROM n.data_na_naracka) AS quarter, sum(n.suma) AS suma, |
| 26 | | count(n.id_naracka) AS kupeni_proizvodi |
| 27 | | FROM naracki AS n |
| 28 | | JOIN 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 |
| 32 | | JOIN kupuvaci AS c2 ON c2.korisnicko_ime = n.korisnicko_ime |
| 33 | | GROUP BY 1,2 |
| 34 | | ) AS tabela ON u.korisnicko_ime = tabela.korisnicko_ime |
| 35 | | }}} |
| 36 | | === **Извештај за вработените,нивната најдобра нарачка,бројот на нарачки што ги направиле и нарачката која што им има најголема гаранција ** |
| 37 | | {{{#!sql |
| 38 | | select 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 |
| 82 | | === **Извештај за категориите,број на производи по категорија според времетраењето на гаранцијата ** |
| 83 | | {{{#!sql |
| 84 | | select k.ime , |
| 85 | | coalesce(prv.zbir_1,0) as pomalku_od_godina, coalesce(vtor.zbir_2,0) as godina, |
| 86 | | coalesce(tret.zbir_3,0) as poveke_od_godina |
| 87 | | from kategorii k |
| 88 | | join proizvodi p on p.id_proizvod=k.id_proizvod |
| 89 | | join garancija g on g.id_proizvod=p.id_proizvod |
| 90 | | left join ( |
| 91 | | select k.ime ,p.ime_proizvod , count(p.id_proizvod)*p.kolicina as zbir_1 |
| 92 | | from kategorii k |
| 93 | | join proizvodi p on p.id_proizvod=k.id_proizvod |
| 94 | | join garancija g on g.id_proizvod=p.id_proizvod and (g.datum_do-g.datum_od) < interval'365 days' |
| 95 | | group by k.ime,p.ime_proizvod,p.kolicina |
| 96 | | ) as prv on k.ime = prv.ime |
| 97 | | left join ( |
| 98 | | select k.ime ,p.ime_proizvod ,count(p.id_proizvod)*p.kolicina as zbir_2 |
| 99 | | from kategorii k |
| 100 | | join proizvodi p on p.id_proizvod=k.id_proizvod |
| 101 | | join 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' |
| 102 | | group by k.ime,p.ime_proizvod,p.kolicina |
| 103 | | ) as vtor on k.ime = vtor.ime |
| 104 | | left join ( |
| 105 | | select k.ime ,p.ime_proizvod , count(p.id_proizvod)*p.kolicina as zbir_3 |
| 106 | | from kategorii k |
| 107 | | join proizvodi p on p.id_proizvod=k.id_proizvod |
| 108 | | join garancija g on g.id_proizvod=p.id_proizvod and (g.datum_do-g.datum_od) > interval' 2 years' |
| 109 | | group by k.ime,p.ime_proizvod,p.kolicina |
| 110 | | |
| 111 | | ) as tret on k.ime=tret.ime |
| 112 | | |
| 113 | | group by k.ime, prv.zbir_1, vtor.zbir_2, tret.zbir_3 |
| 114 | | }}} |
| 115 | | |
| 116 | | === **Извештај за компаниите,број на купени производи од секоја компанија според тромесечие ** |
| | 33 | === **Извештаи за корисник според тромесечие, просечно времетраење на тренинг** |
| 119 | | select k.ime , |
| 120 | | coalesce(prv.zbir_1,0) as prv_kvartal, coalesce(vtor.zbir_2,0) as vtor_kvartal, |
| 121 | | coalesce(tret.zbir_3,0) as tret_kvartal, coalesce(cetvrt.zbir_4,0) as cetvrt_kvartal |
| 122 | | from kompanija k |
| 123 | | join proizvodi p on p.ime = k.ime |
| 124 | | join parce as par on par.id_proizvod =p.id_proizvod |
| 125 | | join parce_e_del_od_naracki pedon on pedon.id_parce =par.id_parce |
| 126 | | join naracki as n on n.id_naracka =pedon.id_parce |
| 127 | | left join ( |
| 128 | | select k.ime ,p.ime_proizvod , count(pedon.id_parce) as zbir_1 |
| 129 | | from kompanija k |
| 130 | | join proizvodi p on p.ime = k.ime |
| 131 | | join parce as par on par.id_proizvod =p.id_proizvod |
| 132 | | join parce_e_del_od_naracki pedon on pedon.id_parce =par.id_parce |
| 133 | | join 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') |
| 134 | | group by k.ime,p.ime_proizvod |
| 135 | | ) as prv on k.ime = prv.ime |
| 136 | | left join ( |
| 137 | | select k.ime ,p.ime_proizvod ,count(pedon.id_parce) as zbir_2 |
| 138 | | from kompanija k |
| 139 | | join proizvodi p on p.ime = k.ime |
| 140 | | join parce as par on par.id_proizvod =p.id_proizvod |
| 141 | | join parce_e_del_od_naracki pedon on pedon.id_parce =par.id_parce |
| 142 | | join 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') |
| 143 | | group by k.ime,p.ime_proizvod |
| 144 | | ) as vtor on k.ime = vtor.ime |
| 145 | | left join ( |
| 146 | | select k.ime ,p.ime_proizvod , count(pedon.id_parce) as zbir_3 |
| 147 | | from kompanija k |
| 148 | | join proizvodi p on p.ime = k.ime |
| 149 | | join parce as par on par.id_proizvod =p.id_proizvod |
| 150 | | join parce_e_del_od_naracki pedon on pedon.id_parce =par.id_parce |
| 151 | | join 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') |
| 152 | | group by k.ime,p.ime_proizvod |
| 153 | | ) as tret on k.ime=tret.ime |
| 154 | | left join ( |
| 155 | | select k.ime ,p.ime_proizvod, count(pedon.id_parce) as zbir_4 |
| 156 | | from kompanija k |
| 157 | | join proizvodi p on p.ime = k.ime |
| 158 | | join parce as par on par.id_proizvod =p.id_proizvod |
| 159 | | join parce_e_del_od_naracki pedon on pedon.id_parce =par.id_parce |
| 160 | | join 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') |
| 161 | | group by k.ime,p.ime_proizvod |
| 162 | | |
| 163 | | ) as cetvrt on k.ime=cetvrt.ime |
| 164 | | group by k.ime, prv.zbir_1, vtor.zbir_2, tret.zbir_3, cetvrt.zbir_4 |
| 165 | | |
| | 36 | SELECT |
| | 37 | U.name AS UserName, |
| | 38 | DATE_TRUNC('quarter', TO_TIMESTAMP(UHD.dID)) AS QuarterStart, |
| | 39 | AVG(W.duration) AS AvgWorkoutDurationMins |
| | 40 | FROM |
| | 41 | _User U |
| | 42 | JOIN |
| | 43 | _UserHas_Day UHD ON U.uID = UHD.uID |
| | 44 | JOIN |
| | 45 | _DayHasWorkout DHW ON UHD.dID = DHW.dID |
| | 46 | JOIN |
| | 47 | Workout W ON DHW.wID = W.wID |
| | 48 | WHERE |
| | 49 | DHW.wID IS NOT NULL |
| | 50 | AND W.duration IS NOT NULL |
| | 51 | GROUP BY |
| | 52 | U.name, DATE_TRUNC('quarter', TO_TIMESTAMP(UHD.dID)) |
| | 53 | ORDER BY |
| | 54 | U.name, QuarterStart; |