No especifica las tablas para Company
yDate
, es posible que desee solucionarlo.
SQL estándar usando MERGE
:
MERGE WorkRecord2 T
USING Employee S
ON T.EmployeeRun = S.EmployeeNo
AND Company = '1'
AND Date = '2013-05-06'
WHEN MATCHED THEN DELETE;
La respuesta de @Devart también es SQL estándar aunque incompleta, debería verse más así:
DELETE
FROM WorkRecord2
WHERE EXISTS ( SELECT *
FROM Employee S
WHERE S.EmployeeNo = WorkRecord2.EmployeeRun
AND Company = '1'
AND Date = '2013-05-06' );
Lo importante a tener en cuenta sobre lo anterior es que está claro que la eliminación está dirigida a una sola tabla, como se impone en el segundo ejemplo al requerir una subconsulta escalar.
Para mí, las diversas respuestas de sintaxis patentadas son más difíciles de leer y comprender. Supongo que la mentalidad para se describe mejor en la respuesta de @frans eilering, es decir, la persona que escribe el código no necesariamente se preocupa por la persona que leerá y mantendrá el código.
DELETE
con una combinación