wiki:AdvancedReports

Version 2 (modified by 192011, 18 months ago) ( diff )

--

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

Најизнајмуван автомобил во текот на изминатите два месеци земено во однос на тековниот датум

select v.brand ,
                v.chassis_number,
                c.vehicle_id, 
                m.model_name, 
                m.color,c3.company_name, 
                count(*) as nor from contracts c
        join vehicles v on v.vehicle_id = c.vehicle_id 
        join models m on v.model_id = m.model_id 
        join companies c3 on c3.company_id = v.company_id 
                where (c.signed_date - interval '2 months')<= c.signed_date and c.signed_date <= now()
                        group by c.vehicle_id , v.brand , v.chassis_number , m.model_name , m.color, c3.company_name
                                having count(*) = (select max(nor) from 
                                        (select vehicle_id, count(*) as nor from contracts c2 group by vehicle_id) contracts)

Локации подредени според тоа колку автомобили има во тој град место и која компанија го нуди

select l.city , count(l.city) as num_of_vehicles from vehicles v
        join locations l on v.location_id = l.location_id 
                group by l.city
                        order by num_of_vehicles desc;

Број на автомобили кои што ги нуди една компанија во некој град

select  c.company_name, count(vehicle_id) as counter from vehicles v
        join locations l on l.location_id = v.location_id 
        join companies c on c.company_id = v.company_id 
                where l.city = 'Skopje'
                        group by  c.company_id , c.company_name;

Регистрации на сите автомобили што биле изнајмени повеќе од десет дена

select v.brand, m.model_name, r.plate_num from vehicles v
        join models m on v.model_id = m.model_id
        join registrations r on v.registration_id = r.registration_id
        join contracts c on c.vehicle_id = v.vehicle_id 
                where c.end_date - c.signed_date >= 10

Компании кои што имаат направено промет поголем од просечниот од сите компании заедно од издавање на автомобили

select c.company_name, 
                sum(v.daily_rental_price) as prihod
        from vehicles v
        join companies c on v.company_id = c.company_id 
                group by c.company_name
                        having sum(v.daily_rental_price) > AVG(V.daily_rental_price)
Note: See TracWiki for help on using the wiki.