ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Delete no SQL Server

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qui Out 05, 2017 9:59 am    Assunto: Delete no SQL Server Responder com Citação

Tenho que fazer um delete de um select assim:
Tenho 3 tabelas envolvidas: Arquivo_Blob, NFeLote, NFeLote_Item
Na tabela Arquivo_Blob preciso apagar as redundancias.
Na tabela NFeLote tenho dois campos são eles: IdArquivo_Blob_EnvioXML e IdArquivo_Blob_ConsultaXML que faz referencia com o campo codigo da tabela Arquivo_Blob
Na tabela NFeLote_Item tenho uma campo chamado IdArquivo_Blob que referencia com o campo codigo da tabela Arquivo_Blob
Tenho que detelar todos arquivos que faz referencia com IdArquivo_Blob_ConsultaXML e IdArquivo_Blob_EnvioXML e não faz com IdArquivo_Blob

Tentei assim, mais não rolou script
Código:
delete from Arquivo_Blob where Codigo in
(select *
from  Arquivo_Blob ab
join NFeLote nfl ON ab.Codigo = nfl.IdArquivo_Blob_EnvioXML 
  or ab.Codigo = nfl.IdArquivo_Blob_ConsultaXML
where not exists
(select 1 from NFeLote_Item nfi
   join Nota_Fiscal nf on
     nf.Codigo = nfi.IdNota_Fiscal
   where ab.codigo = nfi.IdArquivo_Blob
   and nf.Modelo = '65')
and year(ab.Data_Criacao)=2017)


Uso sql server

Uma SP seria melhor ainda.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qui Out 05, 2017 10:52 am    Assunto: Responder com Citação

Bom dia,

Não sei se entendi corretamente mas experimente dessa forma:

Código:
delete ab
from Arquivo_Blob as ab
where
    year(ab.Data_Criacao) = 2017 and
    not exists
        (select 1 from NFeLote_Item nfi
         inner join Nota_Fiscal nf
             on nf.Codigo = nfi.IdNota_Fiscal
         where
             nfi.IdArquivo_Blob = ab.codigo and
             nf.Modelo = '65') and
    exists
        (select 1 from NFeLote nfl
         where
             nfl.IdArquivo_Blob_EnvioXML = ab.Codigo or
             nfl.IdArquivo_Blob_ConsultaXML = ab.Codigo)


Espero que ajude

_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis-alugar-guarulhos!cumbica-comercial_ou_industrial-galpão
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qui Out 05, 2017 1:15 pm    Assunto: Responder com Citação

imex escreveu:
Bom dia,

Não sei se entendi corretamente mas experimente dessa forma:

Código:
delete ab
from Arquivo_Blob as ab
where
    year(ab.Data_Criacao) = 2017 and
    not exists
        (select 1 from NFeLote_Item nfi
         inner join Nota_Fiscal nf
             on nf.Codigo = nfi.IdNota_Fiscal
         where
             nfi.IdArquivo_Blob = ab.codigo and
             nf.Modelo = '65') and
    exists
        (select 1 from NFeLote nfl
         where
             nfl.IdArquivo_Blob_EnvioXML = ab.Codigo or
             nfl.IdArquivo_Blob_ConsultaXML = ab.Codigo)


Espero que ajude

_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis-alugar-guarulhos!cumbica-comercial_ou_industrial-galpão


Obrigado Imex
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB