Ну, если я правильно понимаю ваш вопрос, вы можете сделать что-то вроде этого:
SELECT A.VIN, A.MILEAGE + (Id-1)*ISNULL(B.Avg_Monthly_Mileage,0) AS MILEAGE, A.[State], A.ME_Date
FROM ( SELECT *, ROW_NUMBER() OVER(PARTITION BY VIN, State) Id
FROM dbo.MainTable) A
LEFT JOIN LookUpTable B
ON A.[State] = B.[State]
Конечно, если вы хотите использовать приведенный выше запрос, вы должны знать о некоторых соображениях. Во-первых, предполагается, что в MainTable
не должно быть дубликатов в полях VIN, MILEAGE, State и ME_Date. Кроме того, я не знаю, каким должен быть результат, если один и тот же VIN, MILEAGE и State имеют ME_Dates в одном месяце. Тем не менее, запрос выше дает вам результат, который вы просили.