Напредни извештаи од базата (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
3 weeks ago
Last modified on 01/30/25 14:30:52
Note:
See TracWiki
for help on using the wiki.