none
Pessoal erro na estrutura de SQL RRS feed

  • Pergunta

  • Olá pessoal, 

    Então estou com erro em uma estrutura de SQL, porém não consigo visualizar, outra coisa é que mesmo as competencias estejam entre colchetes o ssms me ocasiona erros do tipo 

    Msg 207, Level 16, State 1, Line 24
    Invalid column name 'jan/21'.

    E por enquanto está me acusando esse erro

    WITH CTE_TOTAL_USUARIOS AS(
    SELECT CORR.CORR_DESCRICAO2,USUA.USUA_CODIGO,SUM(FCI.CONT_VALOR_LIQUIDO) AS CONT_VALOR_LIQUIDO
    FROM DW.DBO.FATO_CONTRATOS_I FCI

    INNER JOIN DW.DBO.DIME_CORRESPONDENTES CORR
    ON FCI.CORR_ID2 = CORR.CORR_ID
    INNER JOIN DW.DBO.DIME_USUARIOS USUA
    ON FCI.ATENDENTE_ID = USUA.USUA_ID
    WHERE CORR.CORR_CODIGO LIKE '003001%'
    AND FCI.CONT_DATA_EMISSAO BETWEEN '2020-07-01' AND '2020-09-30'
    AND FCI.CONT_SITUACAO_PRODUCAO IN (1,3)
    GROUP BY CORR.CORR_DESCRICAO2
    ,USUA.USUA_CODIGO
    )


    SELECT
    A.CORR_DESCRICAO2
    ,A.USUA_CODIGO
    ,NT.TABELA
    ,NT.TIPO_DE_OPERACAO
    ,NT.PLANO
    ,IIF( SRC_TOTAL.CONT_VALOR_LIQUIDO = 0, 0,A.CONT_VALOR_LIQUIDO/SRC_TOTAL.CONT_VALOR_LIQUIDO)CONT_PERCENTUAL_USUARIO
    , [jan/21] * IIF( SRC_TOTAL.CONT_VALOR_LIQUIDO = 0, 0,A.CONT_VALOR_LIQUIDO/SRC_TOTAL.CONT_VALOR_LIQUIDO) JAN_21
    , [fev/21] * IIF( SRC_TOTAL.CONT_VALOR_LIQUIDO = 0, 0,A.CONT_VALOR_LIQUIDO/SRC_TOTAL.CONT_VALOR_LIQUIDO) FEV_21
    , [mar/21] * IIF( SRC_TOTAL.CONT_VALOR_LIQUIDO = 0, 0,A.CONT_VALOR_LIQUIDO/SRC_TOTAL.CONT_VALOR_LIQUIDO) MAR_21
    , [abr/21] * IIF( SRC_TOTAL.CONT_VALOR_LIQUIDO = 0, 0,A.CONT_VALOR_LIQUIDO/SRC_TOTAL.CONT_VALOR_LIQUIDO) ABR_21
    , [mai/21] * IIF( SRC_TOTAL.CONT_VALOR_LIQUIDO = 0, 0,A.CONT_VALOR_LIQUIDO/SRC_TOTAL.CONT_VALOR_LIQUIDO) MAI_21
    , [jun/21] * IIF( SRC_TOTAL.CONT_VALOR_LIQUIDO = 0, 0,A.CONT_VALOR_LIQUIDO/SRC_TOTAL.CONT_VALOR_LIQUIDO) JUN_21
    , [jul/21] * IIF( SRC_TOTAL.CONT_VALOR_LIQUIDO = 0, 0,A.CONT_VALOR_LIQUIDO/SRC_TOTAL.CONT_VALOR_LIQUIDO) JUL_21
    , [ago/21] * IIF( SRC_TOTAL.CONT_VALOR_LIQUIDO = 0, 0,A.CONT_VALOR_LIQUIDO/SRC_TOTAL.CONT_VALOR_LIQUIDO) AGO_21
    , [set/21] * IIF( SRC_TOTAL.CONT_VALOR_LIQUIDO = 0, 0,A.CONT_VALOR_LIQUIDO/SRC_TOTAL.CONT_VALOR_LIQUIDO) SET_21
    , [out/21] * IIF( SRC_TOTAL.CONT_VALOR_LIQUIDO = 0, 0,A.CONT_VALOR_LIQUIDO/SRC_TOTAL.CONT_VALOR_LIQUIDO) OUT_21
    , [nov/21] * IIF( SRC_TOTAL.CONT_VALOR_LIQUIDO = 0, 0,A.CONT_VALOR_LIQUIDO/SRC_TOTAL.CONT_VALOR_LIQUIDO) NOV_21
    , [dez/21] * IIF( SRC_TOTAL.CONT_VALOR_LIQUIDO = 0, 0,A.CONT_VALOR_LIQUIDO/SRC_TOTAL.CONT_VALOR_LIQUIDO) DEZ_21
    FROM CTE_TOTAL_USUARIOS A

    INNER JOIN (SELECT CORR_DESCRICAO2 ,SUM(CONT_VALOR_LIQUIDO) AS CONT_VALOR_LIQUIDO
    FROM CTE_TOTAL_USUARIOS
    GROUP BY CORR_DESCRICAO2) AS SRC_TOTAL
    ON A.CORR_DESCRICAO2 = SRC_TOTAL.CORR_DESCRICAO2

    INNER JOIN [dbo].[TMPEX20201103_Multi_Calculo_Proporcao_Usuario_2021v1] NT
    ON NT.PONTO_DE_VENDA = A.CORR_DESCRICAO2

    ORDER BY 1 ASC, 2 ASC

    Seque a query

    Algué poderia me ajudar por favor?

    quinta-feira, 29 de outubro de 2020 21:05

Todas as Respostas

  • Bom dia Pamila,

    Pelo o que pude verificar, está estranho o seu IF, não dá pra saber onde termina, existe a coluna [jan/21] na sua tabela ?


    • Editado Edvaldo A sexta-feira, 30 de outubro de 2020 12:46
    sexta-feira, 30 de outubro de 2020 12:41
  • Pamila,

    Vamos por partes, acredito que inicialmente você deveria remover a função IIF() do seu comando Select, executar, validando o retorno e tendo a certeza que o Select esta sendo executado.

    Após isso, você poderia começar a declarar o bloco de código composto pela função IIF(), mas parte por parte, você esta utilizando uma quantidade de aninhamentos dentro do seu código que fica difícil de entendermos.

    Vejo que uma boa alternativa seria transformar este trecho que esta sendo utilizado com as funções IIF() em uma outra CTE e posteriormente estar estabelecendo a devido junção.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    sexta-feira, 30 de outubro de 2020 22:38