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


Ignore:
Timestamp:
02/05/25 01:16:25 (3 weeks ago)
Author:
173067
Comment:

--

Legend:

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

    v1 v1  
     1== Напредни извештаи од базата
     2
     3* Извештај за најпопуларни летови по резервација
     4
     5{{{
     6
     7CREATE VIEW MostPopularFlightsReport AS
     8SELECT
     9    f.FlightID,
     10    f.FlightNumber,
     11    f.DepartureAirport,
     12    f.ArrivalAirport,
     13    COUNT(b.BookingID) AS NumberOfBookings
     14FROM
     15    Flight f
     16JOIN
     17    Booking b ON f.FlightID = b.FlightID
     18GROUP BY
     19    f.FlightID, f.FlightNumber, f.DepartureAirport, f.ArrivalAirport
     20ORDER BY
     21    NumberOfBookings DESC;
     22
     23}}}
     24
     25* Извештај за просечен рејтинг по дестинација
     26
     27{{{
     28
     29CREATE VIEW AverageDestinationRatingReport AS
     30SELECT
     31    d.DestinationID,
     32    d.Name AS DestinationName,
     33    AVG(r.Rating) AS AverageRating
     34FROM
     35    Review r
     36JOIN
     37    Destination d ON r.TargetID = d.DestinationID
     38GROUP BY
     39    d.DestinationID, d.Name
     40ORDER BY
     41    AverageRating DESC;
     42
     43}}}
     44
     45* Извештај за историја на резервации на корисници со вкупни трошоци
     46
     47{{{
     48
     49CREATE VIEW UserBookingExpenditureReport AS
     50SELECT
     51    u.UserID,
     52    u.Name,
     53    u.Surname,
     54    COUNT(b.BookingID) AS NumberOfBookings,
     55    SUM(b.TotalCost) AS TotalExpenditure
     56FROM
     57    ApplicationUser u
     58JOIN
     59    Booking b ON u.UserID = b.UserID
     60GROUP BY
     61    u.UserID, u.Name, u.Surname
     62ORDER BY
     63    TotalExpenditure DESC;
     64
     65}}}
     66
     67* Извештај за резервации со статус 'Pending'
     68
     69{{{
     70
     71CREATE VIEW PendingPaymentBookingsReport AS
     72SELECT
     73    b.BookingID,
     74    u.Name AS UserName,
     75    u.Surname AS UserSurname,
     76    f.FlightNumber,
     77    f.DepartureAirport,
     78    f.ArrivalAirport,
     79    b.BookingDate,
     80    b.TotalCost
     81FROM
     82    Booking b
     83JOIN
     84    ApplicationUser u ON b.UserID = u.UserID
     85JOIN
     86    Flight f ON b.FlightID = f.FlightID
     87WHERE
     88    b.PaymentStatus = 'Pending';
     89
     90}}}
     91
     92* Извештај за топ 5 дестинации според Wishlist
     93
     94{{{
     95
     96CREATE VIEW TopDestinationsWishlistReport AS
     97SELECT
     98    d.DestinationID,
     99    d.Name AS DestinationName,
     100    d.Country,
     101    COUNT(w.WishlistID) AS NumberOfWishlistEntries
     102FROM
     103    Wishlist w
     104JOIN
     105    Destination d ON w.TargetID = d.DestinationID
     106GROUP BY
     107    d.DestinationID, d.Name, d.Country
     108ORDER BY
     109    NumberOfWishlistEntries DESC
     110LIMIT 5;
     111
     112}}}
     113
     114* Извештај за корисници кои имаат највеќе резервации
     115
     116{{{
     117
     118CREATE VIEW TopUsersByBookings AS
     119SELECT
     120    u.UserID,
     121    u.Name,
     122    u.Surname,
     123    COUNT(b.BookingID) AS NumberOfBookings
     124FROM
     125    ApplicationUser u
     126JOIN
     127    Booking b ON u.UserID = b.UserID
     128GROUP BY
     129    u.UserID, u.Name, u.Surname
     130ORDER BY
     131    NumberOfBookings DESC;
     132
     133}}}
     134
     135* Извештај за корисници со највеќе рецензии
     136
     137{{{
     138
     139CREATE VIEW FrequentFlightReviewers AS
     140SELECT
     141    u.UserID,
     142    u.Name,
     143    u.Surname,
     144    COUNT(r.ReviewID) AS NumberOfReviews
     145FROM
     146    Review r
     147JOIN
     148    ApplicationUser u ON r.UserID = u.UserID
     149WHERE
     150    r.TargetID IN (SELECT FlightID FROM Flight)
     151GROUP BY
     152    u.UserID, u.Name, u.Surname
     153ORDER BY
     154    NumberOfReviews DESC;
     155
     156}}}
     157
     158* Извештај за следни летови
     159
     160{{{
     161
     162CREATE VIEW UpcomingFlightsWithAvailability AS
     163SELECT
     164    f.FlightID,
     165    f.FlightNumber,
     166    f.DepartureAirport,
     167    f.ArrivalAirport,
     168    f.DepartureTime,
     169    f.ArrivalTime,
     170    f.AvailableSeats
     171FROM
     172    Flight f
     173WHERE
     174    f.DepartureTime > NOW() AND f.AvailableSeats > 0
     175ORDER BY
     176    f.DepartureTime;
     177
     178}}}
     179
     180* Извештај за најдобри начини на плаќање според вкупната потрошувачка
     181
     182{{{
     183
     184CREATE VIEW PaymentMethodSpendReport AS
     185SELECT
     186    p.PaymentMethod,
     187    SUM(p.Amount) AS TotalAmountSpent
     188FROM
     189    Payment p
     190GROUP BY
     191    p.PaymentMethod
     192ORDER BY
     193    TotalAmountSpent DESC;
     194
     195}}}
     196
     197* Извештај за резервација на летови по град на поаѓање
     198
     199{{{
     200
     201CREATE VIEW FlightBookingByCity AS
     202SELECT
     203    a.CityID,
     204    c.Name AS CityName,
     205    COUNT(b.BookingID) AS NumberOfBookings
     206FROM
     207    Booking b
     208JOIN
     209    Flight f ON b.FlightID = f.FlightID
     210JOIN
     211    Airport a ON f.DepartureAirport = a.AirportID
     212JOIN
     213    City c ON a.CityID = c.CityID
     214GROUP BY
     215    a.CityID, c.Name
     216ORDER BY
     217    NumberOfBookings DESC;
     218
     219}}}