Mysql - Grouping the result based on a mathematical operation and SUM() function

Posted by SpikETidE on Stack Overflow See other posts from Stack Overflow or by SpikETidE
Published on 2010-04-17T05:04:20Z Indexed on 2010/04/17 5:13 UTC
Read the original article Hit count: 208

Filed under:
|
|

Hi all...

I'm having the following two tables...

Table : room_type

 type_id    type_name   no_of_rooms     max_guests  rate    
  1          Type 1         15               2      1254    
  2          Type 2         10               1      3025

Table : reservation

reservation_id  start_date  end_date    room_type   booked_rooms    
       1        2010-04-12  2010-04-15      1            8 
       2        2010-04-12  2010-04-15      1            2 

Now... I have this query

SELECT type_id, type_name
FROM room_type
WHERE id NOT IN (SELECT room_type
             FROM reservation
             WHERE start_date >= '$start_date'
             AND   end_date <= '$end_date')

What the query does is it selects the rooms that are not booked between the start date and end date.

Also, as you can see from the reservation table, we also have 'number of rooms booked between the two dates' factor also...

I need to add this 'no.of booked rooms between the two dates' factor also in to the query...

The query should return the type of rooms for which at least one room is free between the two dates.

I worked out the logic but just can't represent it as a query....! How will you do this...?

Thanks for your suggestions..!

© Stack Overflow or respective owner

Related posts about mysql-query

Related posts about group-by