| 1 | = Напредни извештаи од базата (SQL и складирани процедури) = |
| 2 | |
| 3 | === 1. Извештај: Листа на сите активни членови со детални информации === |
| 4 | {{{#!sql |
| 5 | SELECT |
| 6 | c.ClenId, |
| 7 | c.Ime, |
| 8 | c.Prezime, |
| 9 | c.Telefon, |
| 10 | c.Email, |
| 11 | cl.ClenstvoId, |
| 12 | cl.Od AS Pochatok, |
| 13 | cl.Do AS Kraj, |
| 14 | p.Naziv AS Paket, |
| 15 | p.Cena, |
| 16 | cl.PaymentId, |
| 17 | CASE |
| 18 | WHEN cl.online = 1 THEN 'Online' |
| 19 | ELSE 'Cash' |
| 20 | END AS Nacin_na_Plakjanje |
| 21 | FROM Clenovi c |
| 22 | JOIN Clenstvo cl ON c.ClenId = cl.ClenIdFK |
| 23 | JOIN Paketi p ON cl.PaketId = p.PaketId |
| 24 | WHERE cl.Do >= GETDATE(); -- Само активни членства |
| 25 | |
| 26 | WHERE cl.Do >= GETDATE(); |
| 27 | }}} |
| 28 | |
| 29 | |
| 30 | === 2. Извештај: Вкупни приходи по месец === |
| 31 | {{{#!sql |
| 32 | SELECT |
| 33 | YEAR(cl.Od) AS Godina, |
| 34 | MONTH(cl.Od) AS Mesec, |
| 35 | SUM(p.Cena) AS VkupenPrihod |
| 36 | FROM Clenstvo cl |
| 37 | JOIN Paketi p ON cl.PaketId = p.PaketId |
| 38 | GROUP BY YEAR(cl.Od), MONTH(cl.Od) |
| 39 | ORDER BY Godina DESC, Mesec DESC; |
| 40 | }}} |
| 41 | |
| 42 | === 3. Извештај: Број на посети по член во последните 30 дена === |
| 43 | {{{#!sql |
| 44 | SELECT |
| 45 | c.ClenId, |
| 46 | c.Ime, |
| 47 | c.Prezime, |
| 48 | COUNT(po.PosetaId) AS VkupnoPoseti |
| 49 | FROM Clenovi c |
| 50 | JOIN Poseti po ON c.ClenId = po.ClenIdFK |
| 51 | WHERE po.CheckInTime >= DATEADD(DAY, -30, GETDATE()) |
| 52 | GROUP BY c.ClenId, c.Ime, c.Prezime |
| 53 | ORDER BY VkupnoPoseti DESC; |
| 54 | }}} |
| 55 | |
| 56 | === 4. Извештај: Вработени и нивните плати === |
| 57 | {{{#!sql |
| 58 | SELECT |
| 59 | v.VrabotenId, |
| 60 | v.Ime, |
| 61 | v.Prezime, |
| 62 | v.Uloga, |
| 63 | v.Plata, |
| 64 | l.Adresa AS Lokacija |
| 65 | FROM Vraboteni v |
| 66 | JOIN Lokacii l ON v.LokacijaId = l.LokacijaId |
| 67 | ORDER BY v.Plata DESC; |
| 68 | }}} |