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

Delphi

Firebird

01/07/2017

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

Curtidas 0

Respostas

Roberto Wutke

Roberto Wutke

01/07/2017

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