none
INSERIR DADOS NA TABELA A PARTIR DE UMA CTE RRS feed

  • Pergunta

  • Boa tarde!

    Pode parecer besteira e deve ser porém não estou conseguindo inserir dados em uma tabela a partir de uma consulta CTE.

    Tenho essa consulta e já tentei colocar o insert antes do select e mesmo assim nao vai.

    coloquei o seguinte comando

    INSERT INTO  dw_branch_consolidado  ({CAMPOS}..., )

    with CTE_Sum as(
    SELECT B.BUD_ES_COMP COMPETENCIA,B.BUD_ES_GCC COD_FILIAL, G.DescGrupoCentroCusto DESC_FILIAL, B.BUD_ES_CUST CUSTO,
           (E.EV_TIPO_ATUAL + CAST(E.EV_ID AS varchar(10))) AS COD_CONT, E.EV_DESC DESC_CONTRATO,
    	    ES.BUD_ES_RL RL_ESTIMADO,E.EV_NEGOCIO COD_LNEGOC, F.nome DESC_NEGOC
    FROM cad_new_eventos_t E
    	   INNER JOIN cad_budget_geral_t B ON B.BUD_ES_GCC = E.EV_FILIAL
    	   INNER JOIN FiltroGrupoCentroCusto F ON F.id = E.EV_NEGOCIO
    	   INNER JOIN GrupoCentroCusto G ON G.idGrupoCentroCusto = B.BUD_ES_GCC
    	   INNER JOIN cad_budget_geral_t ES ON ES.BUD_ES_COD_ID = E.EV_ID AND  ES.BUD_ES_COMP = B.BUD_ES_COMP
    WHERE E.EV_TIPO_ATUAL = 'NC'
    AND B.BUD_ES_TIPO_ATUAL = 'FL'
    AND ES.BUD_ES_TIPO_ATUAL = 'NC'
    UNION ALL
    SELECT E.BUD_ES_COMP COMPETENCIA, T.ID COD_FILIAL, CF.DESC_FILIAL DESC_FILIAL, CF.CUSTO CUSTO, 
          (E.BUD_ES_TIPO_ATUAL + CAST(E.BUD_ES_GCC AS varchar(10))) AS COD_CONT, G.DescGrupoCentroCusto DESC_CONT ,
    	   E.BUD_ES_RL RL_ESTIMADO, E.BUD_ES_NEGOC COD_LNEGOC, F.nome DESC_NEGOC
        FROM  cad_budget_geral_t E
    	INNER JOIN cad_filiais_contratos_det_t T ON T.GRUPOCCUSTO = E.BUD_ES_GCC /*JA ESTA TRAZENDO OS VALORES APENAS DE BL*/
    	INNER JOIN GrupoCentroCusto G ON G.idGrupoCentroCusto = E.BUD_ES_GCC
    	INNER JOIN FiltroGrupoCentroCusto F ON F.id = E.BUD_ES_NEGOC
    	INNER JOIN vw_budget_custo_fl_v CF ON CF.GCC = T.ID AND CF.COMPETENCIA = E.BUD_ES_COMP
    WHERE E.BUD_ES_TIPO_ATUAL = 'BL'
    )
    SELECT 
        *,
    	 SUM(RL_ESTIMADO) OVER ( PARTITION BY COMPETENCIA, COD_FILIAL) AS SOMA_POR_FILIAL,
    	 SUM(RL_ESTIMADO) OVER ( PARTITION BY COMPETENCIA, COD_FILIAL,COD_LNEGOC) AS SOMA_POR_LN
    FROM CTE_Sum

    Alguem poderia me ajudar?

    segunda-feira, 30 de janeiro de 2017 20:24

Respostas

  • Bom dia!

    Problema resolvido.

    Estava colocando o insert into antes da estrutua geral, após ajuste funcionou perfeitamente.

    with CTE_Sum as(
    SELECT  { ESTRUTURA DO SELECT}

     FROM  {TABELA}

    )
    INSERT INTO plan_branch_budget_rateio_t (COMPETENCIA, COD_FILIAL,CUSTO,IDGCC ,RL, IDFILTRO, SOMA_CONT_TOTAL_FILIAL,SOMA_CONT_POR_LIN_NEG_FILIAL)

    SELECT
        *,
         SUM(RL) OVER ( PARTITION BY COMPETENCIA, COD_FILIAL) AS SOMA_POR_FILIAL,
         SUM(RL) OVER ( PARTITION BY COMPETENCIA, COD_FILIAL,IDFILTRO) AS SOMA_POR_LN
    FROM CTE_Sum

    Obrigada!

    terça-feira, 31 de janeiro de 2017 13:53

Todas as Respostas

  • Deleted
    • Sugerido como Resposta Wesley Neves segunda-feira, 30 de janeiro de 2017 23:57
    segunda-feira, 30 de janeiro de 2017 20:29
  • Boa Noite,

    Qual o erro ao executar o SELECT?


    Fabrício França Lima MCITP - SQL Server Database Administrator Trabalho com SQL Server desde 2006 Treinamento DBA ONLINE: http://www.fabriciolima.net/blog/cursos-online/treinamento-tarefas-do-dia-a-dia-de-um-dba-online/

    terça-feira, 31 de janeiro de 2017 01:32
  • Bom dia!

    Problema resolvido.

    Estava colocando o insert into antes da estrutua geral, após ajuste funcionou perfeitamente.

    with CTE_Sum as(
    SELECT  { ESTRUTURA DO SELECT}

     FROM  {TABELA}

    )
    INSERT INTO plan_branch_budget_rateio_t (COMPETENCIA, COD_FILIAL,CUSTO,IDGCC ,RL, IDFILTRO, SOMA_CONT_TOTAL_FILIAL,SOMA_CONT_POR_LIN_NEG_FILIAL)

    SELECT
        *,
         SUM(RL) OVER ( PARTITION BY COMPETENCIA, COD_FILIAL) AS SOMA_POR_FILIAL,
         SUM(RL) OVER ( PARTITION BY COMPETENCIA, COD_FILIAL,IDFILTRO) AS SOMA_POR_LN
    FROM CTE_Sum

    Obrigada!

    terça-feira, 31 de janeiro de 2017 13:53