Не вижу необходимости объединяться с таблицей MaintItem. У каждого рабочего заказа уже должна быть соответствующая запись MaintItem, нет? Если нет, то присоединяйтесь (это WorkOrder или WONumber, я не мог понять).
INSERT INTO LastOccu(MaintItem, MaxDate, WONumber, ReadingNo)
SELECT wo.MaintItem, wo.RefDate, wo.Workorder, wo.ReadingNo
FROM WorkOrder wo
INNER JOIN(
SELECT MaintItem, MAX(RefDate) AS MaxRefDate
FROM WorkOrder
WHERE RefDate IS NOT NULL
GROUP BY MaintItem
) AS MD ON wo.MaintItem=MD.MaintItem
AND wo.RefDate=MD.MaxRefDate;
Примечание. К сожалению, я пропустил изменение тега с сервера sql на MSAccess. Это не поддерживает ANSI SQL, но, по крайней мере, должно поддерживать такие простые, которые я предполагаю, поэтому не удаляю (Ваш пример выходных данных, похоже, не верен, если в этом может быть логика?).
EDIT:
INSERT INTO LastOccu(MaintItem, MaxDate, WONumber, ReadingNo)
SELECT wo.MaintItem, wo.RefDate, wo.Workorder, wo.ReadingNo
FROM WorkOrder wo
INNER JOIN(
SELECT MaintItem, MAX(RefDate) AS MaxRefDate
FROM WorkOrder
WHERE RefDate IS NOT NULL
GROUP BY MaintItem
) AS MD ON wo.MaintItem=MD.MaintItem
AND wo.RefDate=MD.MaxRefDate
where MaintItem in (Select MaintItem from MaintItem);