Multiply values from different tables, SQL oracle database -
i have 2 3 tables:
clients(client_id, f_name, l_name) cars(car_id,model,price,..) reservation(res_id, client_id_fk,by_date, up_to_date, car_id_fk)
now need display bill reserved car (f_name | l_name | price* number of days
)
i tried make error:
ora-00936: missing expression
this how tried:
select f_name, l_name, sum(cars.price*(date(reservation.up_to_date)-date(reservation.by_date))) clients join reservation reservation.client_id_fk=clients.client_id
how in oracle sql database?
you must join 3 tables together. can calculate date difference in days subtracting dates. add 1 days, since when both dates equal want charge 1 day, not 0.
select clients.f_name || ' ' || clients.l_name || ' ' || to_char(cars.price * (reservation.up_to_date - reservation.by_date + 1), '$99,990.99') clients inner join reservation on clients.client_id = reservation.client_id_fk inner join cars on reservation.car_id_fk = cars.car_id
see: format models number formats.
you can use aliases table names in order more concise:
select c.f_name || ' ' || c.l_name || ' ' || to_char(cars.price * (r.up_to_date - r.by_date + 1), '$99,990.99') clients c inner join reservation r on c.client_id = r.client_id_fk inner join cars on r.car_id_fk = cars.car_id
Comments
Post a Comment