[RESOLVIDO] SQL SERVER 2008 - Montar Query usando filtro no DELETE

Pessoal,

como faço para apagar linhas de 1 tabela conforme abaixo:

Quro excluir da tabela A:

Prefixo	Cod	Data
1234	131	2012-06-01
4321	105	2012-06-01
1234	069	2012-05-01
9876	085	2012-06-01
9999	111	2012-06-01
9999	111	2012-07-01
8888	222	2012-08-01
8888	222	2012-06-01
7777	333	2012-06-01
7777	333	2012-07-01
6666	444	2012-06-01
6666	444	2012-05-01

Todas as linhas que não possuem o conteúdo da tabela B:

Prefixo	Cod	Data
9999	111	2012-06-01
8888	222	2012-08-01
7777	333	2012-06-01
6666	444	2012-06-01

Ou seja, o resultado final deverá ser uma tabela C:

Prefixo	Cod	Data
9999	111	2012-06-01
8888	222	2012-08-01
7777	333	2012-06-01
6666	444	2012-06-01

Alguém sabe montar essa query?

DELETE FROM A a WHERE a.prefixo NOT IN (SELECT b.prefixo FROM B b)
Não funciona?

acho que vai mais além…

delete from A
where not exists (select 1 
                         from B
                         where B.prefixo = A.prefixo
                             and B.cod = A.cod
                             and B.data = A.data)

Se o campo data for timestamp e estiver armazenando hora, minuto e segundo além do dia mês e ano pode ser que precise truncar

[quote=drsmachado] DELETE FROM A a WHERE a.prefixo NOT IN (SELECT b.prefixo FROM B b)
Não funciona?[/quote]

Dessa forma você iria excluir todas as ocorrências do prefixo em questão. Note que são 3 critérios a serem analisados.
Eu pensei em:

Mas não deu certo e já sei o porquê…

Amigo, tenta o seguinte…

[]s

[quote=ADEMILTON]acho que vai mais além…

delete from A
where not exists (select 1 
                         from B
                         where B.prefixo = A.prefixo
                             and B.cod = A.cod
                             and B.data = A.data)

Se o campo data for timestamp e estiver armazenando hora, minuto e segundo além do dia mês e ano pode ser que precise truncar[/quote]

ADEMILTON,

É exatamente isso.
Muito obrigado mesmo!