Home Forums SQL Server 2005 T-SQL (SS2K5) Better way of detecting the presence of a criteria but absence of one which meets requirements? RE: Better way of detecting the presence of a criteria but absence of one which meets requirements?

  • After rechecking my sandbox, it looks like my code my still be valid, so here it is again.

    CREATE TABLE #CandidateTable

    (

    ID INT IDENTITY PRIMARY KEY,

    CandidateID INT,

    Campaign INT,

    Criteria VARCHAR(10),

    [Status] VARCHAR(20)

    )

    CREATE TABLE #CriteriaTable

    (

    ID INT IDENTITY PRIMARY KEY,

    CriteriaTypeID INT,

    Campaign INT,

    Criteria VARCHAR(10)

    )

    INSERT INTO #CandidateTable (CandidateID, Campaign, Criteria)

    VALUES (1, 1, 'ABC')

    INSERT INTO #CandidateTable (CandidateID, Campaign, Criteria)

    VALUES (1, 2, 'AAA')

    INSERT INTO #CandidateTable (CandidateID, Campaign, Criteria)

    VALUES (1, 3, 'ASD')

    INSERT INTO #CandidateTable (CandidateID, Campaign, Criteria)

    VALUES (2, 1, '111')

    INSERT INTO #CandidateTable (CandidateID, Campaign, Criteria)

    VALUES (2, 2, '333')

    INSERT INTO #CandidateTable (CandidateID, Campaign, Criteria)

    VALUES (2, 3, 'ASD')

    INSERT INTO #CandidateTable (CandidateID, Campaign, Criteria)

    VALUES (3, 1, 'ABC')

    INSERT INTO #CandidateTable (CandidateID, Campaign, Criteria)

    VALUES (3, 2, '333')

    INSERT INTO #CandidateTable (CandidateID, Campaign, Criteria)

    VALUES (3, 3, 'ASD')

    INSERT INTO #CriteriaTable (CriteriaTypeID, Campaign, Criteria)

    VALUES (1, 1, 'ABC')

    INSERT INTO #CriteriaTable (CriteriaTypeID, Campaign, Criteria)

    VALUES (2, 1, 'AAA')

    INSERT INTO #CriteriaTable (CriteriaTypeID, Campaign, Criteria)

    VALUES (1, 2, 'AAA')

    INSERT INTO #CriteriaTable (CriteriaTypeID, Campaign, Criteria)

    VALUES (2, 2, 'ABC')

    INSERT INTO #CriteriaTable (CriteriaTypeID, Campaign, Criteria)

    VALUES (2, 3, '333')

    INSERT INTO #CriteriaTable (CriteriaTypeID, Campaign, Criteria)

    VALUES (3, 3, 'ASD')

    UPDATE a

    SET a.Status = 'INVALID'

    FROM #CandidateTable a

    INNER JOIN #CriteriaTable b ON b.Campaign = a.Campaign AND b.Criteria <> a.Criteria AND b.CriteriaTypeID = 1

    SELECT * FROM #CandidateTable

    SELECT * FROM #CriteriaTable WHERE CriteriaTypeID = 1

    DROP TABLE #CandidateTable

    DROP TABLE #CriteriaTable