Delete com join - é possível? Como?

05/10/2011

Preciso transformar esse select em um delete. Como eu faço?
select
cli.razao_social as Cliente
, emb.descricao as Embalagem
, datepart(MM, ped.DATA_PEDIDO) as Mes
, datepart(yyyy, ped.DATA_PEDIDO) as Ano
, count(*) as Total
from cliente cli (nolock)
join local loc (nolock) on loc.cod_cliente=cli.cod_cliente
join departamento dep (nolock) on dep.cod_local=loc.cod_local
join caixa cx (nolock) on cx.cod_departamento=dep.cod_departamento
join item_pedido ip (nolock) on ip.cod_item_pedido=cx.cod_item_pedido
join pedido ped (nolock) on ped.cod_pedido=ip.cod_pedido
join embalagem emb (nolock) on emb.cod_embalagem=ip.cod_embalagem
where Cli.Cod_Cliente = 1
group by
  cli.razao_social
, emb.descricao
, datepart(MM, ped.DATA_PEDIDO)
, datepart(yyyy, ped.DATA_PEDIDO)
order by
  cli.razao_social
, emb.descricao
, datepart(yyyy, ped.DATA_PEDIDO)
, datepart(MM, ped.DATA_PEDIDO)

Respostas

05/10/2011

Pjava

Sempre que eu posto, não consigo visualizar. Vem tudo em branco. Aí eu posto na resposta, pois acho que vocês também não estão vendo nada como eu.
Preciso transforma o select abaixo em delete
select
cli.razao_social as Cliente
, emb.descricao as Embalagem
, datepart(MM, ped.DATA_PEDIDO) as Mes
, datepart(yyyy, ped.DATA_PEDIDO) as Ano
, count(*) as Total
from cliente cli (nolock)
join local loc (nolock) on loc.cod_cliente=cli.cod_cliente
join departamento dep (nolock) on dep.cod_local=loc.cod_local
join caixa cx (nolock) on cx.cod_departamento=dep.cod_departamento
join item_pedido ip (nolock) on ip.cod_item_pedido=cx.cod_item_pedido
join pedido ped (nolock) on ped.cod_pedido=ip.cod_pedido
join embalagem emb (nolock) on emb.cod_embalagem=ip.cod_embalagem
where Cli.Cod_Cliente = 1
group by
  cli.razao_social
, emb.descricao
, datepart(MM, ped.DATA_PEDIDO)
, datepart(yyyy, ped.DATA_PEDIDO)
order by
  cli.razao_social
, emb.descricao
, datepart(yyyy, ped.DATA_PEDIDO)
, datepart(MM, ped.DATA_PEDIDO)

Responder Citar

06/10/2011

Wilson Paulista...!!!

Você quer apagar quais dados, ou seja, de qual tabela???
Responder Citar

18/11/2011

João Flávio

Olha acho que seria mais ou menos assim:

DELETE * FROM [NOME DA TABELA]
INNER JOINT TABELA 1 ON [NOME DA TABELA].[CAMPO]=TABELA 1.CAMPO
WHERE TABELA 1.CAMPO=??????


Na verdade é a mesma coisa do SELECT.

Teste primeiro em uma base teste
Responder Citar