Uso de joins em instruções UPDATE e DELETE no Firebird

01/07/2017

0

Como fazer uma SQL para deletar os registros de uma Tabela...
eu to tentando fazer e não está funcionando. (Utilizo Firebird 2.5)

DELETE FROM ANDAMENTOS_PROCESSUAIS
WHERE CODIGO_ANDAMENTO IN(
  SELECT
	  T2.CODIGO_ANDAMENTO
  FROM
	  ANDAMENTOS_PROCESSUAIS T2
	  LEFT JOIN PROCESSOS T3 ON T2.NUMERO_PROCESSO = T3.NUMERO_PROCESSO
  WHERE
	  (T2.NUMERO_PROCESSO_AUX = T3.NUMERO_PROCESSO)  AND (T3.FASE_PROCESSO LIKE 'ARQUIVADO')    
  UNION ALL
  SELECT
	  T2.CODIGO_ANDAMENTO
  FROM
	  ANDAMENTOS_PROCESSUAIS T2
	  LEFT JOIN PROCESSOS T3 ON T2.NUMERO_PROCESSO = T3.NUMERO_PROCESSO
  WHERE
	  (T2.NUMERO_PROCESSO_AUX = T3.NUMERO_PROCESSO2)  AND (T3.FASE_PROCESSO2 LIKE 'ARQUIVADO')
  UNION ALL
  SELECT
	  T2.CODIGO_ANDAMENTO
  FROM
	  ANDAMENTOS_PROCESSUAIS T2
	  LEFT JOIN PROCESSOS T3 ON T2.NUMERO_PROCESSO = T3.NUMERO_PROCESSO
  WHERE
	  (T2.NUMERO_PROCESSO_AUX = T3.NUMERO_PROCESSO3)  AND (T3.FASE_PROCESSO3 LIKE 'ARQUIVADO'))

Eduardo Silva

Eduardo Silva

Responder

Posts

11/07/2017

Roberto Wutke

nessa caso, quando vc faz o Union all, ele traz 1 linha pra cada union que vc fizer... no seu caso, tem que ser somente uma linha de códigos.

faz assim: faz um sql para cada tipo de processo... desde o arquivado do 1 ate o arquivado do 3, ai não vai ter esse problema, saca?

espero ajudar.

Bons códigos
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar