It looks like you're having mismatched parenthesis and a 'naming issue' in pivoting. To isolate the problem, try running each cte separately. Also you seem to have an extra alias in the end of each cte
For example the first one could be something like
SELECT DISTINCT
LEMNUM,
STATUSID,
CHANGEDATE
FROM BI_HZ_ETL.LEM_CNRLEMSTATUS
WHERE STATUS NOT IN ('DELETED','NEW')
PIVOT (MAX (CHANGEDATE)
FOR STATUSID
IN (20 AS "Submit",25 AS "Rejected", 40 AS "WAPPR", 50 AS "APPR",55 AS "POST",60 AS "COMP"))
If that runs fine, do the same for second one etc.
--------------------
New example added
SELECT distinct
W.*,
v.vendor_name,
lf.SITEID
FROM (SELECT DISTINCT
LEMNUM,
STATUSID,
CHANGEDATE,
changeby
FROM BI_HZ_ETL.LEM_CNRLEMSTATUS
WHERE STATUS NOT IN('DELETED','NEW'))
PIVOT (
MAX(CHANGEDATE) AS MAXCHANGEDATE, MAX(CHANGEBY) AS MAXCHANGEBY
FOR STATUSID IN (20 Submit, 40 WAPPR, 50 APPR, 55 POST, 60 COMP)
)) W
...