I have resolved my issues with the code below:
SELECT DISTINCTA1.assetid,A1.agencygroup,A1.agencyname,A1.agencyid,A1.categoryid ServiceCodeID,A1.assignedto,A1.vehicleid,A1.aglocation,A1.description,A1.modelnumber,A1.statusid assetStatusID,A1.status,Rebanded.projectid,Rebanded.statusid,Rebanded.status woStatus,Rebanded.wotype FROM mcm."asset_v" A1 LEFT JOIN (SELECTA2.assetid,A2.agencygroup,A2.agencyname,A2.agencyid,A2.categoryid ServiceCodeID,A2.assignedto,A2.vehicleid,A2.aglocation,A2.description,A2.modelnumber,A2.statusid assetStatusID,A2.status,W1.projectid,W1.statusid,W1.status woStatus,W1.wotype FROM mcm."asset_v" A2 LEFT JOIN mcm."workorderall_v" W1 ON A2.assetid = W1.assetid WHERE (((A2.categoryid)IN (21,22,24)) AND ((W1.projectid)= 27))) AS Rebanded ON A1.assetid = Rebanded.assetid WHERE (((Rebanded.assetid) IS NULL) AND ((A1.categoryid) IN (21,22,24)))ORDER BY A1.agencygroup, A1.agencyname, A1.agencygroup;
The query returns All records that have not been assigned a ProjectID=27