Can Be Write This Query With Cdbcriteria

Hello everyone !!! I have one problem , i have this query and i want to write it with CDBCriteria . Can be write it with CDBCriteria or its impossible ?

Thanks for your time :)


        $opt='';

        if(!empty($roomtype))

        {

            $opt .= " AND id_room_type = ".$roomtype;

        }

        if(empty($children))

        {

            $opt .= " AND c.childrenFriendly = 1 ";

            $capacity = $adults + $children;

        }

        else {

            $capacity = $adults;

        }

        if(!empty($seaview))

        {

            $opt .= " AND c.seaview = 1 ";

        }

        if(!empty($smoking))

        {

            $opt .= " AND c.smoking = 1 ";

        }

        if(!empty($king_beds))

        {

            $opt .= " AND c.king_beds >= 1 ";

        }


        $qry = RoomType::model()->findAllBySql("

            SELECT (number_of_rooms) AS total, id_room_type, c.reservation, c.start, c.end, childrenFriendly, smoking, king_beds, capacity,

            SUM( number_of_rooms - IFNULL( c.reservation, 0 ) ) AS result

            FROM room_type

            LEFT JOIN (

              SELECT fk_room_type, COUNT( fk_room_type ) AS reservation, start ,end

              FROM room_type_reservation

              WHERE

              (end > '".$start->asSql()."' AND start < '".$end->asSql()."') OR

              (start < '".$end->asSql()."' AND end < '".$start->asSql()."')

              GROUP BY fk_room_type

            )c ON id_room_type = fk_room_type

            WHERE enabled = 1 AND capacity > ".$capacity." ". $opt ."

                GROUP BY id_room_type

                HAVING result > ".$number_of_rooms."

        ");

        return $qry;