I am having the following query to fetch the data from the table.
SELECT rental_plans.*, 
       ( ( inventory.total_inventory 
           + vehicles.tmp_qty ) - Ifnull(reservation.total_reserved, 0) ) AS 
       vehicle_inventory 
FROM   `rental_plans` 
       INNER JOIN `vehicles` 
               ON `vehicles`.`id` = `rental_plans`.`vehicle_id` 
       LEFT JOIN (SELECT Count(*) AS total_inventory, 
                         vehicle_id 
                  FROM   vehicle_inventories 
                  GROUP  BY vehicle_id) AS inventory 
              ON `inventory`.`vehicle_id` = `vehicles`.`id` 
       LEFT JOIN (SELECT vehicle_id, 
                         Sum(qty) AS total_reserved 
                  FROM   `reservations` 
                  WHERE  ( '2018-12-18' BETWEEN pickup_date AND drop_date ) 
                          OR ( '2018-12-28' BETWEEN pickup_date AND drop_date ) 
                             AND `status` NOT IN ( 'RETURNED' ) 
                  GROUP  BY `vehicle_id`) AS `reservation` 
              ON `rental_plans`.`vehicle_id` = `reservation`.`vehicle_id` 
WHERE  `rental_plans`.`id` > 0 
       AND `rental_plans`.`pickup` = '1' 
       AND `rental_plans`.`drop` = '10' 
ORDER  BY `rental_plans`.`price` ASC 
But I want to handle where condition based on vehicle_inventory.
I tried with ... AND vehicle_inventory > 16 order by `rental_plans`.`price` ASC but this generates the error that column not found in the table

 
    