Array
(
)

Erro em OpenQuery no SQL Server

Fabiano Rios
   - 04 ago 2015

Amigos, bom dia. Alguém poderia me socorrer, por gentileza?
Estou tentando realizar um insert, no SQL server, utilizando OpenQuey. Quando executo o insert ocorre o erro abaixo:
Mensagem 492, Nível 16, Estado 1, Linha 107
Nomes de colunas duplicados não são permitidos em conjuntos de resultados obtidos mediante OPENQUERY e OPENROWSET. O nome da coluna "CO_BARRA" é duplicado.
Isto ocorre porque preciso pegar o mesmo campo origem e inserí-lo em dois campos destino diferentes.
Não consegui encontrar a solução para isto.
Abs e obrigado.

Jothaz
   - 04 ago 2015

Use a tag code "</>" primeiro ícone a esquerda e post sua query.

Sem ela fica impossível sugerir algo.

Fabiano Rios
   - 04 ago 2015

#Código

INSERT INTO DadosRETs (DRT_DssEmpresa, 
                       DRT_NumCNPJ,
                       DRT_NumFPAS, 
                       DRT_NumTerceiros, 
                       DRT_NumSimples, 
                       DRT_NumRAT, 
                       DRT_NumFAP, 
                       DRT_NumRATAjustado,
                       DRT_NumCdRec,
                       DRT_NumMesCompetencia, 
                       DRT_NumAnoCompetencia, 
                       DRT_DssTomador, 
                       DRT_NumCNPJTomador,
         		       DRT_DssControleEmpresa,
                       DRT_DssControleTomador, 
                       DRT_DssEndereco, 
                       DRT_DssBairro, 
                       DRT_DssMunicipio, 
                       DRT_NumCEP, 
                       DRT_DssUF, 
                       DRT_NumModalidadeFGTS,
                       DRT_DssNomeModalidade,
                       DRT_VlnRemINSSNormal, 
                       DRT_VlnRemINSS13, 
                       DRT_VlnRemFGTSNormal8,
                       DRT_VlnRemFGTS138,
                       DRT_VlnRemFGTSNormal2,
                       DRT_VlnRemFGTS132,
                       DRT_VlnDeposito8,
                       DRT_VlnDeposito2,
                       DRT_VlnContrSocial8,
                       DRT_VlnContrSocial2,
                       DRT_VlnEncargos8,
                       DRT_VlnEncargos2,
                       DRT_VlnContribEmpregados,
                       DRT_VlnContribDevida,
                       DRT_NumtrabalhadoresINSS,
                       DRT_NumTrabalhadoresFGTS8,
                       DRT_NumTrabalhadoresFGTS2,
                       DRT_DssCdBarras8,
                       DRT_DssCdBarras2) 
select * from openquery (sefip,
					   'select distinct
                       sfptb014_ret.no_razao_social_empresa,
                       sfptb014_ret.nu_inscricao_empresa,
                       sfptb014_ret.nu_fpas,
                       sfptb014_ret.co_trcro,
                       sfptb014_ret.co_simples,
                       sfptb014_ret.pc_aliquota_sat,
                       sfptb014_ret.pc_aliquota_fap,
                       sfptb014_ret.pc_rat_ajustado,
                      (select distinct sfptb051_aberturarclh.co_recolhimento
                       from sfptb051_aberturarclh
                       inner join sfptb005_pessoa on (sfptb005_pessoa.nu_pessoa= sfptb051_aberturarclh.nu_pessoa)
                       where substring(cast(sfptb014_ret.nu_inscricao_empresa as varchar(14))from 1 for 9) =
                       substring(cast(sfptb005_pessoa.nu_inscricao as varchar(14))from 1 for 9)),
                      (select distinct sfptb051_aberturarclh.mm_competencia
                       from sfptb051_aberturarclh
                       inner join sfptb005_pessoa on (sfptb005_pessoa.nu_pessoa= sfptb051_aberturarclh.nu_pessoa)
                       where substring(cast(sfptb014_ret.nu_inscricao_empresa as varchar(14))from 1 for 9) =
                       substring(cast(sfptb005_pessoa.nu_inscricao as varchar(14))from 1 for 9)),
                      (select distinct sfptb051_aberturarclh.aa_competencia
                       from sfptb051_aberturarclh
                       inner join sfptb005_pessoa on (sfptb005_pessoa.nu_pessoa= sfptb051_aberturarclh.nu_pessoa)
                       where substring(cast(sfptb014_ret.nu_inscricao_empresa as varchar(14))from 1 for 9) =
                       substring(cast(sfptb005_pessoa.nu_inscricao as varchar(14))from 1 for 9)),
                       sfptb014_ret.no_razao_social_tomador,
                       sfptb014_ret.nu_inscricao_tomador,
                       sfptb014_ret.co_cntre_seguranca_empresa,
                       sfptb014_ret.co_cntre_seguranca_tomador,
                       sfptb014_ret.de_localizacao,
                       sfptb014_ret.no_bairro,
                       sfptb014_ret.no_localidade,
                       sfptb014_ret.nu_cep,
                       sfptb014_ret.sg_uf,
                       sfptb082_modalidaderet.nu_modalidade_fgts,
                       sfptb078_tpmodalidade.de_modalidade_resumida,
                       sfptb082_modalidaderet.vr_rmnro_inss,
                       sfptb082_modalidaderet.vr_rmnro_inss_13,
                       sfptb082_modalidaderet.vr_rmnro_fgts_grupo1_taxa1,
                       sfptb082_modalidaderet.vr_rmnro_fgts_13_grupo1_taxa1,
                       sfptb082_modalidaderet.vr_rmnro_fgts_grupo2,
                       sfptb082_modalidaderet.vr_rmnro_fgts_13_grupo2,
		       sfptb082_modalidaderet.vr_deposito_grupo1_taxa1,
		       sfptb082_modalidaderet.vr_deposito_grupo2,
		       sfptb082_modalidaderet.vr_cnbco_social_grupo1,
		       sfptb082_modalidaderet.vr_cnbco_social_grupo2,
		       sfptb082_modalidaderet.vr_encargo_fgts_grupo1,
		       sfptb082_modalidaderet.vr_encargo_fgts_grupo2,
		       sfptb014_ret.vr_contrib_desc_trab,
                       sfptb014_ret.vr_dev_prev_soc,
                       sfptb082_modalidaderet.qt_empregado_inss,
                       sfptb082_modalidaderet.qt_empregado_grupo1_taxa1,
                       sfptb082_modalidaderet.qt_empregado_grupo2,
                      (select sfptb031_grf.co_barra
                       from sfptb031_grf
                       where sfptb031_grf.nu_inscricao = sfptb014_ret.nu_inscricao_empresa
                       and sfptb031_grf.ic_grupo_grf = 1),
                      (select a.co_barra
                       from sfptb031_grf a
                       where a.nu_inscricao = sfptb014_ret.nu_inscricao_empresa
                       and a.ic_grupo_grf = 2)     
                      from sfptb014_ret
                      inner join sfptb055_opcaosimples on (sfptb055_opcaosimples.co_simples = sfptb014_ret.co_simples)
                      inner join sfptb082_modalidaderet on (    (sfptb082_modalidaderet.nu_inscricao_tomador = sfptb014_ret.nu_inscricao_tomador)
                                                            and (sfptb082_modalidaderet.nu_inscricao_empresa = sfptb014_ret.nu_inscricao_empresa))
                      inner join sfptb078_tpmodalidade on (sfptb078_tpmodalidade.nu_modalidade_fgts = sfptb082_modalidaderet.nu_modalidade_fgts)')


o erro ocorre nos dois últimos campos, que tenho que retornar obrigatoriamente, para popular a tabela destino