Você não especifica as tabelas para Company
eDate
, talvez queira consertar isso.
SQL padrão 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;
A resposta do @Devart também é SQL padrão, embora incompleta, deve se parecer mais com isso:
DELETE
FROM WorkRecord2
WHERE EXISTS ( SELECT *
FROM Employee S
WHERE S.EmployeeNo = WorkRecord2.EmployeeRun
AND Company = '1'
AND Date = '2013-05-06' );
O importante a ser observado sobre o exposto acima é que a exclusão está direcionada a uma única tabela, conforme aplicado no segundo exemplo, exigindo uma subconsulta escalar.
Para mim, as várias respostas de sintaxe proprietárias são mais difíceis de ler e entender. Eu acho que a mentalidade para é melhor descrita na resposta por @frans eilering, ou seja, a pessoa que escreve o código não se importa necessariamente com a pessoa que lerá e manterá o código.
DELETE
de uma junção