7 Replies Latest reply: Mar 4, 2016 2:55 PM by Clever Anjos RSS

    Clausula IF com erro?

    Jean Carvalho Silva

      Olá,

       

      Eu montei um script a partir de um LOAD e RESIDENT, nele, preciso fazer uma condição baseado em campos pertencentes a duas tabelas distintas que uni-as com um INNER JOIN criando a tabela TB_R01.qvd.

       

      Meu problema é, quando crio a cláusula IF conforme exemplo abaixo na linha 92, o QlikView não reconhece minha cláusula IF.

       

      Alguém sabe me dizer onde pode estar errado?

       

      P.S: Tentei fazer utilizando a cláusula CASE WHEN (abaixo), porém, o QlikView também não reconheceu.

       

      (CASE WHEN DATA_DO_FATURAMENTO IS NOT NULL THEN
           (CASE WHEN RECEB_DOCTOS_EXP IS NULL THEN
              SUM(V_SOLICITACAO_LI_33 + V_PROTOCOLO_LI_PRE_35 + DT_AUTORIZACAO + AUTORIZACAO_EMBARQUE + PRE_ALERTA + CHEGADA + ATRAQUE + REMOCAO + V_PROTOCOLO_LI_POS_42 + DT_DEFERIMENTO + DT_REGISTRO_DEC + DESEMBARACO + CARREGAMENTO + DT_LIBERA_FATURA)
                  (CASE WHEN SUM(V_SOLICITACAO_LI_33 + V_PROTOCOLO_LI_PRE_35 + DT_AUTORIZACAO + AUTORIZACAO_EMBARQUE + PRE_ALERTA + CHEGADA + ATRAQUE + REMOCAO + V_PROTOCOLO_LI_POS_42 + DT_DEFERIMENTO + DT_REGISTRO_DEC + DESEMBARACO + CARREGAMENTO + DT_LIBERA_FATURA) = 0
                      DATA_DO_FATURAMENTO + (INVOICING + DOCS_RECEIVE + REQUESTING_LI + PROTOCOLING_LI_PRE + WAITING_LI_PRE + AUTORIZ_SHIPPING + PRE_ALERT_WAIT + INTERNL_TRANSIT + SHIPM_T_ARRIVAL_ACKNOL + PROTOCOLING_LI_POST + WAITING_LI_POST + REGISTERING_DI + CLEARING_CUSTOMS + WAITING_WH_REQUEST + DELIVERING + DELIVERED) END)
            END)
      ELSE
          DATA_DO_FATURAMENTO = '99999999'
      END) as DT_ESTIMATED_DELIVERY
      

       

      TB_R01:
      LOAD  LINHA_DE_NEGOCIO
          , EXPORTADOR_SAP
          , FK_CD_FAB_SAP
          , MEIO_TRANSPORTE
          , PROCESSO
          , DATA_DO_FATURAMENTO
          , RECEB_DOCTOS_EXP
          , V_SOLICITACAO_LI_33
          , V_PROTOCOLO_LI_PRE_35
          , DT_AUTORIZACAO
          , AUTORIZACAO_EMBARQUE
          , PRE_ALERTA
          , CHEGADA
          , ATRAQUE
          , REMOCAO
          , V_PROTOCOLO_LI_POS_42
          , DT_DEFERIMENTO
          , DT_REGISTRO_DEC
          , DESEMBARACO
          , CARREGAMENTO
          , DT_LIBERA_FATURA
      FROM FOLLOWUP.qvd (qvd);
      
      INNER JOIN
      
      LOAD   LINHA_DE_NEGOCIO
           , EXPORTADOR_SAP
           , FK_CD_FAB_SAP
           , MEIO_TRANSPORTE
           , INVOICING
           , DOCS_RECEIVE
           , REQUESTING_LI
           , PROTOCOLING_LI_PRE
           , WAITING_LI_PRE
           , AUTORIZ_SHIPPING
           , PRE_ALERT_WAIT
           , INTERNL_TRANSIT
           , SHIPM_T_ARRIVAL_ACKNOL
           , PROTOCOLING_LI_POST
           , WAITING_LI_POST
           , REGISTERING_DI 
           , CLEARING_CUSTOMS
           , WAITING_WH_REQUEST
           , DELIVERING
           , DELIVERED 
           , BASELINE 
           , TT_TARGET
      FROM FASES.qvd (qvd);
      STORE TB_R01 INTO TB_R01.qvd;
      
      TB_R01_RES:
      LOAD  LINHA_DE_NEGOCIO
          , EXPORTADOR_SAP
          , FK_CD_FAB_SAP
          , MEIO_TRANSPORTE
          , PROCESSO
          , DATA_DO_FATURAMENTO
          , RECEB_DOCTOS_EXP
          , V_SOLICITACAO_LI_33
          , V_PROTOCOLO_LI_PRE_35
          , DT_AUTORIZACAO
          , AUTORIZACAO_EMBARQUE
          , PRE_ALERTA
          , CHEGADA
          , ATRAQUE
          , REMOCAO
          , V_PROTOCOLO_LI_POS_42
          , DT_DEFERIMENTO
          , DT_REGISTRO_DEC
          , DESEMBARACO
          , CARREGAMENTO
          , DT_LIBERA_FATURA
          , INVOICING
          , DOCS_RECEIVE
          , REQUESTING_LI
          , PROTOCOLING_LI_PRE
          , WAITING_LI_PRE
          , AUTORIZ_SHIPPING
          , PRE_ALERT_WAIT
          , INTERNL_TRANSIT
          , SHIPM_T_ARRIVAL_ACKNOL
          , PROTOCOLING_LI_POST
          , WAITING_LI_POST
          , REGISTERING_DI 
          , CLEARING_CUSTOMS
          , WAITING_WH_REQUEST
          , DELIVERING
          , DELIVERED 
          , BASELINE 
          , TT_TARGET
          , IF(DATA_DO_FATURAMENTO <> '', (IF RECEB_DOCTOS_EXP = '', (SUM(V_SOLICITACAO_LI_33 + V_PROTOCOLO_LI_PRE_35 + DT_AUTORIZACAO + AUTORIZACAO_EMBARQUE + PRE_ALERTA + CHEGADA + ATRAQUE + REMOCAO + V_PROTOCOLO_LI_POS_42 + DT_DEFERIMENTO + DT_REGISTRO_DEC + DESEMBARACO + CARREGAMENTO + DT_LIBERA_FATURA)), 0), 99999999) as DATA_DO_FATURAMENTO
      RESIDENT TB_R01;
      
      //DROP TABLE TB_R01;