Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia a todos!
Tenho 3 tabelas: contas >>> impostos retidos >>> impostos
O problema que na tabela de impostos retidos tenho impostos de nome semelhante, que consigo selecionar com like, porém ids diferentes que devem ser deletados.
E o segundo problema é que eu tenho que selecionar apenas devo deletar o imposto retido de menor id.
Para isto estou tentando criar uma tabela através de um select para unir em uma só coluna estes impostos de nomes semelhantes e acima desse select tenho um outro select usando group by, count e having para selecionar os duplicados para que eu deletasse-os.
Porém como preciso da coluna com o id da tabela de impostos retidos para saber qual é o imposto que deve ser deletado, e o id é diferente para cada linha, o group by não funciona pois as linhas são diferentes.
Alguém poderia me dar uma luz?
Segue o sql:
-- Selecionaria registros em duplicidade
select * from
(-- Cria tabela com dados que preciso
select distinct
COUNT(MFKIDCOP) as qtdIdCop,
MFKIDCOP as cpId,
case when MFKIDIMP in (select MF2IDIMP from MF2IMPOT where MF2NMIMP like '%iss%') then 'ISS' end as impId,
MFKVAALI as impVal,
MFKIDICP
from MFGCOPAT, MFKIMPOT where MFKIDCOP=mfgidcop
group by MFKIDCOP,MFKIDIMP,MFKVAALI, MFGIDCOP,MFKIDICP
) as tb1
where impId is not null
group by cpId,impId, impVal,MFKIDICP,qtdIdCop
having COUNT(cpId)>1 -- Como a coluna MFKIDICP é diferente pra cada linha não retorna nada
Carregando comentários...