Este documento tem por objetivo orientar na correção do erro: SQL STATE 01000, SQL error code 3621/ a subconsulta retornou mais de 1 valor, isso não é permitido quando a subconsulta segue um =,!=,<,<,=,>,>= ou quando ela é usada como uma expressão apresentado ao acessar o Analisado Fiscal.
Informações Adicionais: Os procedimentos desse documento devem ser realizados diretamente do servidor.
Resolução
Microsoft SQL Server Management Studio Express
Esse erro ocorre devido à duplicidade de informações na base de dados SQL.
1- No Menu inicial do computador acesse Iniciar > Todos os Programas > Microsoft SQL Server> Microsoft SQL Server Management Studio Express
2- Acesse o SQL como Windows Authentication ou Autenticação do Windows
3- Acesse New Query ou Nova Consulta e selecione a sua ProempXX
4- No campo ao lado execute um a um os comandos abaixo:
A) Consultar todas as empresas cujo o CNPJ aparece mais de uma vez na tabela cadastro de empresas:
SELECT CNPJ, COUNT(CNPJ) FROM CAD_EMPRESA GROUP BY CNPJ having count(CNPJ)>1;
B) Utilizando o CNPJ retornado na consulta anterior, consultar os dados das empresas:
Pesquisando somente uma empresa:
SELECT * FROM CAD_EMPRESA WHERE CNPJ = XXXXXXXXXXXXXX;
Pesquisando mais de uma empresa:
SELECT * FROM CAD_EMPRESA WHERE CNPJ IN(XXXXXXXXXXXXXX, XXXXXXXXXXXXXX);
C) Deve-se consultar a rotina cadastro de empresas no GOLD para confirmar os dados da(s) empresa(s)
D) com os dados em mãos deve-se excluir as informações incorretas:
Primeiro realize uma pesquisa com os dados errados para ter certeza que somente estes serão deletados:
SELECT * FROM CAD_EMPRESA WHERE CNPJ IN(XXXXXXXXXXXXXX, XXXXXXXXXXXXXX) AND RAZAO_SOCIAL = 'TESTE';
Altere (na linha acima) select * para delete e exclua as informações incorretas da base de dados do GID:
DELETE FROM CAD_EMPRESA WHERE CNPJ IN(XXXXXXXXXXXXXX, XXXXXXXXXXXXXX) AND RAZAO_SOCIAL = 'TESTE';