Thanks for the reply Visakh16, with the help of the company DBA I ended up with this: CREATE TABLE #CTE ( [SpecRecordID_rc] BIGINT NULL , [SpecIssueNo] INT NULL , [Resource] [varchar](35) NULL , [PPM] FLOAT NULL )WITH CTE AS ( SELECT * , ROW_NUMBER() OVER ( PARTITION BY s.SpecRecordID_rc ORDER BY s.SpecIssueNo DESC ) AS seq FROM dbo.mp_RPINSpecifications s ( NOLOCK ) ) INSERT INTO #CTE SELECT CTE.SpecRecordID_rc , CTE.SpecIssueNo , r.Resource , u.PPM FROM CTE (NOLOCK) INNER JOIN mp_rcResourceData r ( NOLOCK ) ON CTE.SpecRecordID_rc = r.RecordID INNER JOIN mp_RPINUpload u ( NOLOCK ) ON r.Resource = u.Resource WHERE seq = 1 ORDER BY CTE.SpecRecordID_rcUPDATE dbo.mp_RPINSpecificationsSET SpecpacksPerMinute = #CTE.PPMFROM dbo.mp_RPINSpecifications spec INNER JOIN #CTE ON spec.SpecRecordID_rc = #CTE.SpecRecordID_rc AND spec.SpecIssueNo = #CTE.SpecIssueNoWHERE spec.SpecRecordID_rc IN ( SELECT [SpecRecordID_rc] FROM #CTE ) AND EXISTS ( SELECT 1 FROM mp_RPINUpload INNER JOIN #CTE ON dbo.mp_RPINUpload.Resource = #CTE.Resource AND #CTE.SpecRecordID_rc = spec.SpecRecordID_rc AND #CTE.SpecIssueNo = spec.SpecIssueNo ) DROP TABLE #CTE