SQL Server – aide à la suppression de lignes avec une clause multiple where à l'aide d'une sous-requête

J'ai quelques problèmes avec une suppression SQL. SQL Server n'aime pas avoir plusieurs parameters dans la clause where pour supprimer des lignes de table_02 (la sous-requête est la table 1). Toute aide à ce sujet serait grandement appréciée.

Merci.

 DELETE FROM table_02 WHERE (col_1,col_2,col_3,col_4) IN ( SELECT col_1,col_2,col_3,col_4 FROM table_01 GROUP BY col_1,col_2,col_3,col_4 HAVING SUM(CASE WHEN col_1<6 THEN col_2*-1 ELSE col_2 END)=0 ) 

Vous pouvez réécrire IN comme EXISTS

 DELETE FROM table_02 WHERE EXISTS(SELECT * FROM table_01 WHERE table_02.col_1 = table_01.col_1 AND table_02.col_2 = table_01.col_2 AND table_02.col_3 = table_01.col_3 AND table_02.col_4 = table_01.col_4 HAVING SUM(CASE WHEN col_1 < 6 THEN col_2 * -1 ELSE col_2 END) = 0) 
 Delete a from table1 a Inner Join table2 b on a.col = b.col WHERE ...