Fórum Excluindo arquivos duplicados #460463
07/11/2013
0
SELECT COUNT(*) FROM os GROUP BY DESCRICAO HAving count(ID_OS)>1
Tenho a tabela OS e o campo ID_OS
más nela tem registros duplicados de mesmo código..
estou usando o SQL EDITOR do IBXpert e gostaria de ver quais numeros do ID_OS esta duplicado e poder exclui-los, parece ser simples más num to dando conta não...
vlw t+
Gilmar Moraes
Curtir tópico
+ 0Posts
08/11/2013
Thiago Irrazabal
SELECT ID_OS, COUNT(*) FROM OS GROUP BY 1 HAVING COUNT(*) > 1
Att,
Thiago Irrazabal de Oliveira.
Gostei + 0
08/11/2013
Gilmar Moraes
SELECT ID_OS, COUNT(*) FROM OS GROUP BY 1 HAVING COUNT(*) > 1
Amigo, deu certinho..más como faço para excluir os duplicados..só para se ter uma idéia tem arquivos com 7 ocorrencia de duplicidade..vlw mesmo
Att,
Thiago Irrazabal de Oliveira.
pesquisando achei este codigo em doc aki do forum mesmo..
Delete From os t1 Where rowid < (Select max(rowid) From os t2 Where t1.primary_key = t2.primary_key);
más minha dúvida,... não atribuí chaves primárias para poder fazer a copia do bando de dados, más codigo acima parecer ser obrigatorio isso..más entendo que não era para existir duplicidade de um mesmo codigo..entãi isso não faria muito sentido..
Gostei + 0
08/11/2013
Russimar Silva
Gostei + 0
08/11/2013
Thiago Irrazabal
DELETE FROM OS WHERE ID_OS IN (SELECT ID_OS FROM OS GROUP BY ID_OS HAVING COUNT(*) > 1);
Att,
Thiago Irrazabal de Oliveira.
Gostei + 0
08/11/2013
Gilmar Moraes
DELETE FROM OS WHERE ID_OS IN (SELECT ID_OS FROM OS GROUP BY ID_OS HAVING COUNT(*) > 1);
Att,
Thiago Irrazabal de Oliveira.
SELECT ID_OS, COUNT(*) FROM OS GROUP BY 1 HAVING COUNT(*) > 1; DELETE FROM OS WHERE ID_OS IN (SELECT ID_OS FROM OS GROUP BY ID_OS HAVING COUNT(*) > 1);
então..
precisa destes dois códigos ou só o ultimo
dá este erro
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 5, column 1.
DELETE.
Gostei + 0
08/11/2013
Alessandro Yamasaki
Gostei + 0
08/11/2013
Thiago Irrazabal
Att,
Thiago Irrazabal de Oliveira.
Gostei + 0
08/11/2013
Gilmar Moraes
Att,
Thiago Irrazabal de Oliveira.
Amigo..deu tudo certo e funcionou perfeito..muito obrigado pela ajuda..t+
Gostei + 0
09/11/2013
Gilmar Moraes
Att,
Thiago Irrazabal de Oliveira.
estou prescisando de um infomarção boba más nem sei por onde começo ..nesta mesma tabela precisei inserir um campo que se chama ENTREGUE que vai receber valores 0 e 1, de inicio queria que todos os campos recebecem o valor 0 tem como fazer isso em SQL sem prescisar programar no delphi ?
Gostei + 0
09/11/2013
Alex Lekao
Da para vc colocar na campo, uma informacao como default zero.
Gostei + 0
09/11/2013
Gilmar Moraes
Da para vc colocar na campo, uma informacao como default zero.
uso o IBXPERT.. como faço isso ?
Gostei + 0
09/11/2013
Thiago Irrazabal
ALTER TABLE OS ADD ENTREGUE INTEGER DEFAULT 0;
Att,
Thiago Irrazabal de Oliveira.
Gostei + 0
10/11/2013
Deivison Melo
select COALESCE(ENTREGUE,0) ENTREGUE from OS
O Comando COALESCE faz isso...
Gostei + 0
10/11/2013
Gilmar Moraes
select COALESCE(ENTREGUE,0) ENTREGUE from OS
O Comando COALESCE faz isso...
tipo..na verdade é o seguinte, tenho duas tabelas que quero integrar em apenas uma, tenho uma tabela arquivo morto e uma tabela OS. No arquivo morto, todos os registros (1500 + ou -) receberão no seu campo ENTREGUE igual a 1 ena outra tabela OS receberá 0 e depois as dua tabelas será exportada para penas uma..onde os registros que receberam 1 será os dados baixa e os 0 será os em aberto..neste caso vc falou alguma coisa sobre pesquisa..num teria como já lançar o valor sem prescisar desta busca..estava pensando em programae no delphi um while para fazer isso más acho que em sql é muito mais rápido..vlw
Gostei + 0
10/11/2013
Gilmar Moraes
ALTER TABLE OS ADD ENTREGUE INTEGER DEFAULT 0;
Att,
Thiago Irrazabal de Oliveira.
dá este erro..
This operation is not defined for system tables.
unsuccessful metadata update.
STORE RDB$RELATION_FIELDS failed.
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15".
esta é uma tabela antiga que se chama ORCAMENTO_OFIC_ELET e o campo BAIXA
o codigo que deu o erro ficou assim.
ALTER TABLE ORCAMENTO_OFIC_ELET ADD BAIXA INTEGER DEFAULT 0;
vlw
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)