• How about this?

    --========= TEST DATA =============

    declare @a table ([User] int, [Year] Char(4), 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 * from @a;

    -- The query would select all records like User #1 because they had two years in a row

    -- where they "Failed" in the Status2 category. The user would have to fail a specific

    -- Status category 2 consecutive years in a row.

    --========= SOLUTION =============

    select *

    from

    (

    select [User],

    Year1=MAX(case when [Year]='2011' then [Year] end),

    Year2=MAX(case when [Year]='2012' then [Year] end),

    Status1Year1=MAX(case when [Year]='2011' then [Status1] end),

    Status1Year2=MAX(case when [Year]='2012' then [Status1] end),

    Status2Year1=MAX(case when [Year]='2011' then [Status2] end),

    Status2Year2=MAX(case when [Year]='2012' then [Status2] end),

    Status3Year1=MAX(case when [Year]='2011' then [Status3] end),

    Status3Year2=MAX(case when [Year]='2012' then [Status3] end)

    from @a

    group by [User]

    ) z

    where (Status1Year1='Fail' and Status1Year2='Fail')

    or (Status2Year1='Fail' and Status2Year2='Fail')

    or (Status3Year1='Fail' and Status3Year2='Fail');