select max from inner join

Hi i have 2 tables with one to many relationship, header to rows . my query look like this

SELECT HEADER_ID, ROW_ID, COL1,COL2 … ,

(SELECT MAX(row) where HEADER_ID = HEADER_ID)

FROM HEADER INNER JOIN ROWS ON …. WHERE …

WHAT IS THE BEST WAY (IF NEEDED) TO CHANGE THE SELECT MAX TO INNER JOIN

FROM

what will be


SELECT H.HEADER_ID, R.ROW_ID
FROM HEADER H
CROSS APPLY (
    SELECT MAX(row) AS MAX_ROW
    FROM ROWS R
    WHERE R.HEADER_ID = H.HEADER_ID
) AS R

hi

hope this helps

another way of doing this

SELECT h.HEADER_ID, r.ROW_ID, r.COL1, r.COL2
FROM HEADER h
JOIN (
    SELECT ROW_ID, HEADER_ID, COL1, COL2, SomeColumn,
           RANK() OVER (PARTITION BY HEADER_ID ORDER BY SomeColumn DESC) AS rk
    FROM ROWS
) r ON h.HEADER_ID = r.HEADER_ID
WHERE r.rk = 1