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

Popular posts from this blog

c# - Validate object ID from GET to POST -

php - Find a regex to take part of Email -

javascript - Function overwritting -