SQL Max() revision number
Have you tried something like this?  Since I don't have your actual tables (nor do I have time to fake them up), I cannot test this.  However, this might help point you in the correct direction.  Failing that, you may want to look at common-table-expressions, or CTE's.

SELECT a.eventnum, a.num_cust, a.out_minutes, d.completion_remarks
    , d.weather_code, MAX(rev_num) AS MaxRevNum
FROM mv_outage_duration a
    INNER JOIN mv_outhist_transformers b
        ON a.restore_operation_id = b.phase_restored_operation_id
    INNER JOIN mv_aeven d
        ON d.restore_operation_id = b.PHASE_RESTORED_OPERATION_ID
    INNER JOIN mv_we_outage_premise e
        ON e.xfmr = b.xfmr_name
WHERE e.we_premise = '995184'
GROUP BY a.eventnum, a.num_cust, a.out_minutes, d.completion_remarks
    , d.weather_code




EDIT;  perhaps this will help

SELECT a.eventnum, a.num_cust, a.out_minutes, d.completion_remarks
    , d.weather_code, MAX(rev_num) AS MaxRevNum
FROM mv_outage_duration a
    INNER JOIN mv_outhist_transformers b
        ON a.restore_operation_id = b.phase_restored_operation_id
    INNER JOIN mv_aeven d
        ON d.restore_operation_id = b.PHASE_RESTORED_OPERATION_ID
    INNER JOIN mv_we_outage_premise e
        ON e.xfmr = b.xfmr_name
WHERE e.we_premise = '995184'
    AND d.weather_code IN (SELECT d.weather_code FROM mv_aeven WHERE mv_aeven.rev_num = MaxRevNum)
GROUP BY a.eventnum, a.num_cust, a.out_minutes, d.completion_remarks
    , d.weather_code;