too long

I have been having a problem with a query which results in the following error

PHP Fatal error:  Call to a member function result() on boolean on line 200

I'v had no problems with other queries, but on this one I have to do a query within a query, which is the following:

$this->load->helper('date');
$datestring = "%Y-%m-%d";
$time = strtotime('yesterday');
$date= mdate($datestring, $time);

$db = $this->load->database('macs', TRUE);

$query = $db->query("SELECT TOP 1 TEMP1.USER AS PACKER, Count(TEMP1.[ORDER]) AS ORDERS FROM (SELECT AUDIT.USER, AUDIT.[ORDER] FROM AUDIT WHERE AUDIT.DATE > '$date' AND (AUDIT.TYPE='I11' Or AUDIT.TYPE =' 11') GROUP BY AUDIT.DATE, AUDIT.TYPE, AUDIT.USER, AUDIT.[ORDER]) AS TEMP1 GROUP BY TEMP1.USER ORDER BY Count(TEMP1.[ORDER]) DESC");

return $query->result();
$macsdb->close();

This works correctly in access (The above is a conversion of an access query). The query starts to work (incorrectly however) when anything referencing USERis removed. What could be causing this?

MySQL does not support TOP clause

If you want to get TOP 1 record you can use query like this

SELECT * FROM table_name ORDER BY field_name DESC LIMIT 1