none
Insert através de um select RRS feed

  • Pergunta

  • Boa tarde, pessoal,

    No comando abaixo, estou inserindo dados na mesma tabela buscando dados cadastrados em uma  empresa e inserindo em outra, alterando apenas o id(numemp)

    Esta valiado e funciona - Porém apenas para uma empresa, preciso inserir os mesmos dados de uma empresa para mais 200  - Para não fazer uma a uma preciso automatizar mas estou com dificuldades... Alguém poderia me ajudar?

     

    insert into r044cal (numemp, codcal, tipcal,SitCal, PerRef,datpag,inicmp,fimcmp,inivtr,fimvtr,inifvt,fimfvt,iniapu,fimapu,inival,fimval,inifvl,fimfvl)

    select 739,codcal, tipcal,SitCal, PerRef,datpag,inicmp,fimcmp,inivtr,fimvtr,inifvt,fimfvt,iniapu,fimapu,inival,fimval,inifvl,fimfvl
    from r044cal
    where numemp = 1142 

    terça-feira, 16 de agosto de 2016 19:47

Respostas

  • Boa tarde,

    Supondo que exista uma tabela de empresas experimente mais ou menos dessa forma:

    insert into r044cal (numemp, codcal, tipcal,SitCal, PerRef,datpag,inicmp,fimcmp,inivtr,fimvtr,inifvt,fimfvt,iniapu,fimapu,inival,fimval,inifvl,fimfvl)
    
    select 
        e.numemp,
        r.codcal, 
        r.tipcal,
        r.SitCal, 
        r.PerRef,
        r.datpag,
        r.inicmp,
        r.fimcmp,
        r.inivtr,
        r.fimvtr,
        r.inifvt,
        r.fimfvt,
        r.iniapu,
        r.fimapu,
        r.inival,
        r.fimval,
        r.inifvl,
        r.fimfvl
    from r044cal as r
    cross join TblEmpresas as e
    where 
        r.numemp = 1142 and
        e.numemp <> 1142

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    terça-feira, 16 de agosto de 2016 19:54

Todas as Respostas

  • Boa tarde,

    Supondo que exista uma tabela de empresas experimente mais ou menos dessa forma:

    insert into r044cal (numemp, codcal, tipcal,SitCal, PerRef,datpag,inicmp,fimcmp,inivtr,fimvtr,inifvt,fimfvt,iniapu,fimapu,inival,fimval,inifvl,fimfvl)
    
    select 
        e.numemp,
        r.codcal, 
        r.tipcal,
        r.SitCal, 
        r.PerRef,
        r.datpag,
        r.inicmp,
        r.fimcmp,
        r.inivtr,
        r.fimvtr,
        r.inifvt,
        r.fimfvt,
        r.iniapu,
        r.fimapu,
        r.inival,
        r.fimval,
        r.inifvl,
        r.fimfvl
    from r044cal as r
    cross join TblEmpresas as e
    where 
        r.numemp = 1142 and
        e.numemp <> 1142

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    terça-feira, 16 de agosto de 2016 19:54
  • Olá você pode aprimorar seu where,

    colocando uma cadeia de dados para o numemp.

    E utilizar uma tabela temporária ou subselect para buscar os dados acima.

    Tabela temporaria = https://msdn.microsoft.com/pt-br/library/ms188029.aspx?f=255&MSPPError=-2147217396

    Subselect: Where numemp in ( Select numemp  from empresa where numemp  between 1142  and 1342)

    Ficou claro?

    Att,

    Luiz

    terça-feira, 16 de agosto de 2016 19:59
  • Boa tarde,

    Deu certo, é isso que preciso.

    Muito obrigado!!

    Abraços. 

    terça-feira, 16 de agosto de 2016 21:19