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