Version 3 (modified by 10 hours ago) ( diff ) | ,
---|
Напредни извештаи од базата (SQL и складирани процедури)
1.Вкупен приход по месец од купување и изнајмување
SELECT DATE_FORMAT(p.ProcurementDate, '%Y-%m') AS Mesec, SUM(COALESCE(t.TotalPrice, t.MonthlyPay * t.Duration)) AS VkupenPrihod FROM Procurement p JOIN T_Type t ON p.TransactionID = t.TransactionID GROUP BY Mesec ORDER BY Mesec DESC;
2.Најактивни клиенти според број на трансакции
SELECT c.CustomerName, c.CustomerSurName, COUNT(p.TransactionID) AS VkupnoTransakcii FROM Customer c JOIN Procurement p ON c.CustomerID = p.CustomerID GROUP BY c.CustomerID ORDER BY VkupnoTransakcii DESC;
3.Најчесто сервисирани производи (камиони/приколки)
SELECT pr.Model, COUNT(m.MainID) AS BrojNaServisi FROM Maintenance m JOIN Product pr ON m.ProductID = pr.ProductID GROUP BY pr.ProductID ORDER BY BrojNaServisi DESC;
4.Приход по тип на трансакција
SELECT t.Type, SUM(CASE WHEN t.Type = 'Buy' THEN t.TotalPrice WHEN t.Type = 'Rent' THEN t.MonthlyPay * t.Duration END) AS VkupenPrihod FROM T_Type t GROUP BY t.Type;
5.Производи со најдобри оценки од корисници
SELECT pr.Model, AVG(f.Rating) AS ProsecnaOcena, COUNT(f.FeedbackID) AS BrojNaOceni FROM CustomerFeedback f JOIN Product pr ON f.ProductID = pr.ProductID GROUP BY f.ProductID ORDER BY ProsecnaOcena DESC, BrojNaOceni DESC;
6. Највредни производи (цени)
SELECT Model, Price, Status FROM Product ORDER BY Price DESC;
7.Месечен извештај по типови трансакции и вкупен приход
SELECT DATE_FORMAT(p.ProcurementDate, '%Y-%m') AS Month_Year, COUNT(p.TransactionID) AS Total_Transactions, COUNT(CASE WHEN t.Type = 'Rent' THEN 1 END) AS Rent_Transactions, COUNT(CASE WHEN t.Type = 'Buy' THEN 1 END) AS Buy_Transactions, SUM(CASE WHEN t.Type = 'Rent' THEN t.MonthlyPay * t.Duration ELSE 0 END) AS Rent_Revenue, SUM(CASE WHEN t.Type = 'Buy' THEN t.TotalPrice ELSE 0 END) AS Buy_Revenue, COUNT(DISTINCT m.MainID) AS Maintenance_Count, ROUND(AVG(f.Rating), 2) AS Avg_Feedback_Rating FROM Procurement p LEFT JOIN T_Type t ON p.TransactionID = t.TransactionID LEFT JOIN Maintenance m ON p.ProductID = m.ProductID AND DATE_FORMAT(p.ProcurementDate, '%Y-%m') = DATE_FORMAT(m.MainDate, '%Y-%m') LEFT JOIN CustomerFeedback f ON p.TransactionID = f.TransactionID GROUP BY Month_Year ORDER BY Month_Year DESC;
Note:
See TracWiki
for help on using the wiki.