Changes between Initial Version and Version 1 of Напредни извештаи од базата (SQL и складирани процедури)


Ignore:
Timestamp:
05/11/25 23:14:48 (5 days ago)
Author:
183284
Comment:

--

Legend:

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

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