ah, sorry, I see my mistake, the @ comes after - SELECT requestID, orderID
FROM
(SELECT baserequestID, requestID, orderID, ROW_NUMBER() OVER (PARTITION BY baserequestID ORDER BY requestID DESC, orderID DESC) AS recentness
FROM
(SELECT CASE WHEN CHARINDEX('-', requestID) = 0 THEN requestID ELSE LEFT(requestID, LEN(requestID) - 2) END AS baserequestID, requestID, orderID
FROM ids
UNION ALL
SELECT CASE WHEN CHARINDEX('-', requestID) = 0 THEN requestID ELSE LEFT(requestID, LEN(requestID) - 2) END AS baserequestID, requestID, orderID
FROM ids_done) u
) rn
WHERE rn.recentness = 1