• It would help if you provided the results that you were expecting as there are a couple of ways of doing this.

    Using the previous sample data (except that Year is an Int instead of char) this is my take on the problem

    declare @a table ([User] int, [Year] int, Status1 Char(4), Status2 Char(4), Status3 Char(4));

    insert @a values ( 1, 2011, 'Pass', 'Fail', 'Fail' );

    insert @a values ( 2, 2011, 'Pass', 'Pass', 'Pass' );

    insert @a values ( 1, 2012, 'Pass', 'Fail', 'Pass' );

    insert @a values ( 2, 2012, 'Pass', 'Fail', 'Pass' );

    Select

    x.*

    From

    @a x

    JOIN @a y on x.[User]=y.[User]

    and x.[Year] =y.Year+1

    Where

    (x.Status1=y.Status1 and x.Status1='Fail')

    or (x.Status2=y.Status2 and x.Status2='Fail')

    or (x.Status3=y.Status3 and x.Status3='Fail')

    This will only work for checking consecutive years and not ranges of years.

    _________________________________________________________________________
    SSC Guide to Posting and Best Practices