I believe there's a way to do it much simpler. But you'll need to test.
DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
SET @StartDate = '1/1/2012'
SET @EndDate = '1/31/2012'
SELECT ER.EngEquipID
,ER.Location
,ER.Cycles
,ER.DateTimeStamp
,'Labor' AS Labor
,ISNULL( A.TRANS_tambase_amt, 0) AS LaborAmount
,'Parts' AS Parts
,ISNULL( B.TRANS_tambase_amt, 0) AS PartsAmount
,ISNULL( A.TRANS_tambase_amt, 0) + ISNULL( B.TRANS_tambase_amt, 0) AS TotalAmount
FROM Engine_Prod.mc.WORKORDER WO
LEFT OUTER JOIN MSM.dbo.tblEngRunData ER ON ER.WONumber = ltrim(rtrim(WO.id))
LEFT OUTER JOIN mc.WORKTASK WT ON WO.wordoi = WT.wrkord_oi
LEFT OUTER JOIN mc.WORKORDERTYPE WOT ON WO.wot_oi = WOT.wotyoi
LEFT OUTER JOIN (
SELECT CHARGEINF.wt_oi
,LABORTRANS.tambase_amt TRANS_tambase_amt
FROM mc.CHARGEINF CHARGEINF
INNER JOIN mc.lbtr_chgs lbtr_chgs ON CHARGEINF.chgioi = lbtr_chgs.ref_oi
INNER JOIN mc.LABORTRANS LABORTRANS ON lbtr_chgs.owner_oi = LABORTRANS.lbtroi
WHERE LABORTRANS.posted = 1) A ON WT.wtskoi = A.wt_oi
LEFT OUTER JOIN (
SELECT CHARGEINF.wt_oi
,INVTRANS.tambase_amt TRANS_tambase_amt
FROM mc.CHARGEINF CHARGEINF
INNER JOIN mc.intr_chgs intr_chgs ON CHARGEINF.chgioi = intr_chgs.ref_oi
INNER JOIN mc.INVTRANS INVTRANS ON intr_chgs.owner_oi = INVTRANS.introi
WHERE INVTRANS.posted = 1
) B ON WT.wtskoi = B.wt_oi
WHERE ER.DateTimeStamp BETWEEN @StartDate
AND @EndDate
AND WO.clsdt_date BETWEEN @StartDate
AND @EndDate
AND WT.ci_cnc_date IS NULL
AND WT.tmplt = 0