If I have what you are saying right, you could try something like this... And if not this may give you an idea of where to start looking at this. This also assumes the column is null, or has a date of '1900-1-1' until filled. You can change the criteria to you liking.
Code:
SELECT
COLUMN1,
COLUMN2,
Q2.LAST_REPORT_DATE,
CASE
WHEN DATEADD(DAY, 56, Q2.LAST_REPORT_DATE) < GETDATE() THEN 'OVERDUE'
WHEN DATEADD(DAY, 56, Q2.LAST_REPORT_DATE) = GETDATE() THEN 'DUE'
WHEN DATEADD(DAY, 56, Q2.LAST_REPORT_DATE) > GETDATE() THEN 'NOT DUE'
ELSE 'UNKNOWN PLEASE CHECK'
END AS REPORT_STATUS
FROM TABLE1 Q1
JOIN (
SELECT
CASE WHEN COLUMN12 IS NOT NULL AND COLUMN12 >= '1900-1-1' THEN COLUMN12
WHEN COLUMN11 IS NOT NULL AND COLUMN11 >= '1900-1-1' THEN COLUMN11
WHEN COLUMN10 IS NOT NULL AND COLUMN10 >= '1900-1-1' THEN COLUMN10
WHEN COLUMN9 IS NOT NULL AND COLUMN9 >= '1900-1-1' THEN COLUMN9
WHEN COLUMN8 IS NOT NULL AND COLUMN8 >= '1900-1-1' THEN COLUMN8
WHEN COLUMN7 IS NOT NULL AND COLUMN7 >= '1900-1-1' THEN COLUMN7
WHEN COLUMN6 IS NOT NULL AND COLUMN6 >= '1900-1-1' THEN COLUMN6
WHEN COLUMN5 IS NOT NULL AND COLUMN5 >= '1900-1-1' THEN COLUMN5
WHEN COLUMN4 IS NOT NULL AND COLUMN4 >= '1900-1-1' THEN COLUMN4
WHEN COLUMN3 IS NOT NULL AND COLUMN3 >= '1900-1-1' THEN COLUMN3
WHEN COLUMN2 IS NOT NULL AND COLUMN2 >= '1900-1-1' THEN COLUMN2
WHEN COLUMN1 IS NOT NULL AND COLUMN1 >= '1900-1-1' THEN COLUMN1
ELSE NULL
END AS LAST_REPORT_ID,
TABLE_KEY
FROM TABLE2 T2
) AS Q2 ON Q1.TABLE_KEY = Q2.TABLE_KEY