Напредни извештаи од базата (SQL и складирани процедури)
Извештај за месечен приход и ДДВ наплата (последни 6 месеци)
Прикажува вкупен приход, трошоци за делови, труд и ДДВ наплата по месец
SELECT
TO_CHAR(s.DateOfService, 'YYYY-MM') AS Month,
SUM(s.TotalPrice) AS TotalRevenue,
SUM(si.PricePerUnit * sa.UnitsUsed) AS PartsCost,
SUM(s.LaborCost) AS LaborCost,
SUM(si.PricePerUnit * sa.UnitsUsed * si.Tax / 100) AS TaxCollected
FROM Services s
JOIN ServiceAssignments sa ON s.Id = sa.ServiceId
JOIN ServiceItems si ON sa.ServiceItemId = si.Id
WHERE s.DateOfService >= CURRENT_DATE - INTERVAL '6 months'
GROUP BY TO_CHAR(s.DateOfService, 'YYYY-MM')
ORDER BY Month DESC;
Извештај за продуктивност на механичари
Прикажува број на сервиси, вкупно користени делови и вкупна вредност на делови по механичар
SELECT
m.EMBG,
m.FirstName || ' ' || m.LastName AS Mechanic,
COUNT(DISTINCT sa.ServiceId) AS TotalServices,
SUM(sa.UnitsUsed) AS TotalUnitsUsed,
SUM(si.PricePerUnit * sa.UnitsUsed) AS TotalPartsValue
FROM Mechanics m
JOIN ServiceAssignments sa ON m.EMBG = sa.MechanicEMBG
JOIN ServiceItems si ON sa.ServiceItemId = si.Id
GROUP BY m.EMBG, Mechanic
ORDER BY TotalPartsValue DESC;
Извештај за лојални клиенти и нивни трошоци
Листа на клиенти со повеќе од 3 сервиси, вкупен потрошено и детали за нивните мотоцикли
SELECT
c.Id AS ClientId,
c.FirstName || ' ' || c.LastName AS Client,
COUNT(DISTINCT s.Id) AS TotalServices,
SUM(s.TotalPrice) AS TotalSpent,
STRING_AGG(m.Model || ' (' || m.Registration || ')', ', ') AS Motorcycles
FROM Clients c
JOIN Motorcycles m ON c.Id = m.ClientId
JOIN Services s ON m.Id = s.MotorcycleId
GROUP BY c.Id, Client
HAVING COUNT(DISTINCT s.Id) > 3
ORDER BY TotalSpent DESC;
Извештај за употреба на делови во сервиси (топ 10 делови)
Прикажува најчесто користени делови и просечна количина по сервис
SELECT
si.Id AS PartId,
si.Description,
COUNT(sa.ServiceId) AS TimesUsed,
SUM(sa.UnitsUsed) AS TotalUnits,
ROUND(AVG(sa.UnitsUsed), 2) AS AvgPerService
FROM ServiceItems si
JOIN ServiceAssignments sa ON si.Id = sa.ServiceItemId
GROUP BY si.Id, si.Description
ORDER BY TotalUnits DESC
LIMIT 10;
Извештај за фискални обврски по месец
Вкупен ДДВ и износ на фискални сметки по месец
SELECT
TO_CHAR(fb.IssueDateTime, 'YYYY-MM') AS Month,
COUNT(fb.Id) AS FiscalBillsCount,
SUM(fb.DDV) AS TotalTax,
SUM(s.TotalPrice) AS TotalInvoiced
FROM FiscalBills fb
JOIN ServiceInvoices si ON fb.ServiceInvoiceId = si.Id
JOIN Services s ON si.ServiceId = s.Id
GROUP BY TO_CHAR(fb.IssueDateTime, 'YYYY-MM')
ORDER BY Month DESC;
Last modified
7 months ago
Last modified on 01/30/25 14:30:52
Note:
See TracWiki
for help on using the wiki.
