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: 293
        
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