• I would use the Table Value Constructor version instead of the standard UNPIVOT, because it's more flexible and you need that flexibility here.  I've used a sample where the StartDate is in a datetime format, you can replace that with whatever you're using to handle the dates.

    SELECT ContractName, DATEADD(MONTH, n, StartMonth), [Target]
    FROM tblTarget
    CROSS APPLY
    (
        VALUES
            (0, TargetMonth1),
            (1, TargetMonth2),
            (2, TargetMonth3),
            (11, TargetMonth12)
    ) v(n, [Target])

    Drew

    J. Drew Allen
    Business Intelligence Analyst
    Philadelphia, PA