Delete com join - é possível? Como?

SQL Server

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)

Pjava

Pjava

Curtidas 0

Respostas

Pjava

Pjava

05/10/2011

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)

GOSTEI 0
Wilson Junior

Wilson Junior

05/10/2011

Você quer apagar quais dados, ou seja, de qual tabela???
GOSTEI 0
João Flávio

João Flávio

05/10/2011

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
GOSTEI 0
POSTAR