• Final working code, with huge thanks to Ken McKelvey:

    WITH DeleteTests

    AS

    (

    SELECT *

    ,MAX(CASE WHEN TestStatus = 'D' THEN 1 ELSE 0 END) OVER (PARTITION BY KitId, StdBatteryName) AS IsD

    ,MAX(CASE WHEN TestStatus = 'N' THEN 1 ELSE 0 END) OVER (PARTITION BY KitId, StdBatteryName) AS IsN

    ,MAX(CASE WHEN TestStatus = 'X' THEN 1 ELSE 0 END) OVER (PARTITION BY KitId, StdBatteryName) AS IsX

    FROM PRE_LOAD P

    WHERE EXISTS

    (

    SELECT 1

    FROM PRE_LOAD P1

    WHERE P1.KitId = P.KitId AND P1.StdBatteryName = P.StdBatteryName

    GROUP BY KitId, StdBatteryName

    HAVING COUNT(DISTINCT StdBatteryId) > 1

    )

    )

    DELETE FROM PL

    FROM dbo.PRE_LOAD PL JOIN DeleteTests DT

    ON PL.KitID = DT.KitID

    AND PL.StdTestID = DT.StdTestID

    AND PL.StdBatteryName = DT.StdBatteryName

    AND PL.TestStatus = DT.TestStatus

    AND (DT.TestStatus = 'N' AND (IsD = 1 OR IsX = 1))

    OR (DT.TestStatus = 'X' AND DT.IsD = 1 AND DT.IsN = 0);