Jump to content
nicolasbessa

Performance Query SQL (ANSI)

Recommended Posts

Galera,

Uma ajuda, Por gentileza!

 

Tenho a query abaixo para ser trabalhada a performance. A mesma é uma view, realiza consulta diversas vezes na mesma tabela para montar alguns campos.

Gostaria de ideias para melhorar a mesma, desde já agradeço!

 


  CREATE OR REPLACE FORCE EDITIONABLE VIEW "LF"."VW_CTM_JNJ_ENTSAI_TABLEAU" ("TIPO_NF", "COD_HOLDING", "COD_MATRIZ", "COD_FILIAL", "ID_NF", "NUM_NF", "SERIE", "COD_MODELO", "COD_CFOP_LEGAL", "COD_CLIFOR", "DT_EMISSAO", "DT_LANCAMENTO", "DT_ENTRADA", "COD_STATUS", "COD_UF", "MUNICIPIO", "RAZAOSOCIAL", "CGC_CPF", "VLR_TOTAL_PRODUTOS", "TOTAL_ITEM", "ICMS_BASE_TOTAL", "ICMS_VALOR_TOTAL", "ICMS_ST_BASE_TOTAL", "ICMS_ST_VALOR_TOTAL", "VLR_FRETE", "VLR_SEGURO", "VLR_DESPESAS", "IPI_TRIBUTADO", "IPI_NAO_TRIBUTADO", "DOCNUM", "ID_ITEM", "COD_PRODUTO", "COD_UNID_MEDIDA", "COD_CLASSIF_FISCAL", "QUANTIDADE", "VLR_UNITARIO", "VLR_DESCONTO", "DESCRICAO_NOTA", "DIG_CFOP", "COD_GRP_PRODUTO", "COD_IVA", "COD_ORIGEM_PROD", "CTA_CTB_MATERIAL", "LANCTO_CONTABIL", "CHAVE_NF_E", "NUMERO_DI", "COD_TRIBUT_ICMS", "COD_SIT_TRIB_IPI", "COD_IMPOSTO", "BASE_CALCULO_1", "BASE_CALCULO_2", "BASE_CALCULO_3", "VLR_IMPOSTO_ICMS_1", "VLR_IMPOSTO_ICMS_2", "ALIQUOTA_ICMS_1", "ALIQUOTA_ICMS_2", "COD_TRIBUT_IPI", "BASE_CALCULO_IPI_1", "BASE_CALCULO_IPI_2", "BASE_CALCULO_IPI_3", "ALIQUOTA_IPI", "VLR_IMPOSTO_IPI", "BASE_CALCULO_ST_1", "BASE_CALCULO_ST_2", "BASE_CALCULO_ST_3", "ALIQUOTA_ST", "VLR_IMPOSTO_ST", "BASE_CALCULO_DIFAL", "ALIQUOTA_DIFAL", "VLR_IMPOSTO_DIFAL", "BASE_CALCULO_J6", "VLR_IMPOSTO_J6", "BASE_CALCULO_J7", "VLR_IMPOSTO_J7", "BASE_CALCULO_J8", "VLR_IMPOSTO_J8", "BASE_CALCULO_PIS_1", "BASE_CALCULO_PIS_2", "BASE_CALCULO_PIS_3", "ALIQUOTA_PIS", "VLR_IMPOSTO_PIS", "COD_SIT_TRIB_PIS", "BASE_CALCULO_COFINS_1", "BASE_CALCULO_COFINS_2", "BASE_CALCULO_COFINS_3", "ALIQUOTA_COFINS", "VLR_IMPOSTO_COFINS", "COD_SIT_TRIB_COF") AS 
  select distinct
              'E'                  TIPO_NF,
               a.COD_HOLDING,
               a.COD_MATRIZ,
               a.COD_FILIAL,
               a.ID_NF_ENTRADA     ID_NF,
               A.NUM_NF,
               A.SERIE,
               A.COD_MODELO,
               a.COD_CFOP_LEGAL,
               a.COD_CLIFOR,
               A.DT_EMISSAO,
               a.DT_LANCAMENTO,
               a.DT_ENTRADA,
               a.COD_STATUS,
               a.COD_UF,
               A.MUNICIPIO,
               A.RAZAOSOCIAL,
               A.CGC_CPF,
               A.VLR_TOTAL_PRODUTOS,
               B.VLR_BRUTO           TOTAL_ITEM,
               A.ICMS_BASE_TOTAL,
               A.ICMS_VALOR_TOTAL,
               A.ICMS_ST_BASE_TOTAL,
               A.ICMS_ST_VL_TOTAL    ICMS_ST_VALOR_TOTAL,
               A.VLR_FRETE,
               A.VLR_SEGURO,
               A.VLR_DESPESAS,
               A.IPI_TRIBUTADO,
               a.IPI_NAO_TRIBUTADO,
               a.DOCNUM,
               b.id_item,
               b.COD_PRODUTO,
               b.COD_UNID_MEDIDA,
               b.COD_CLASSIF_FISCAL,
               b.QUANTIDADE,
               b.VLR_UNITARIO,
               b.VLR_DESCONTO,
               b.DESCRICAO_NOTA,
               b.dig_cfop,
               b.cod_grp_produto, 
               b.cod_iva,
               C.COD_ORIGEM_PROD,
               B.CTA_CTB_MATERIAL,
               A.LANCTO_CONTABIL,
               A.CHAVE_NF_E,
               A.NUMERO_DI,
               c.COD_TRIBUT_ICMS,
               c.COD_SIT_TRIB_IPI,  
               -- DADOS DO IMPOSTO 01
               c.COD_IMPOSTO,
              (SELECT NVL(base_calculo,0)
               FROM   LF_NF_entrada_IMPOSTO
               WHERE  cod_holding   = b.cod_holding
               and    cod_matriz    = b.cod_matriz
               and    cod_filial      = b.cod_filial
               and    id_nf_entrada   = b.id_nf_entrada
               AND    id_item         = b.id_item
               AND    COD_IMPOSTO     = '01'
               and    cod_tp_lanc_imp = '1'             
               AND    ROWNUM          = 1)  base_calculo_1,
               --
              (SELECT NVL(base_calculo,0)
               FROM   LF_NF_entrada_IMPOSTO
               WHERE  cod_holding   = b.cod_holding
               and    cod_matriz    = b.cod_matriz
               and    cod_filial      = b.cod_filial
               and    id_nf_entrada   = b.id_nf_entrada
               AND    id_item         = b.id_item
               AND    COD_IMPOSTO     = '01'
               and    cod_tp_lanc_imp = '2'             
               AND    ROWNUM          = 1)  base_calculo_2,
               --
              (SELECT NVL(base_calculo,0)
               FROM   LF_NF_entrada_IMPOSTO
               WHERE  cod_holding   = b.cod_holding
               and    cod_matriz    = b.cod_matriz
               and    cod_filial      = b.cod_filial
               and    id_nf_entrada   = b.id_nf_entrada
               AND    id_item         = b.id_item
               AND    COD_IMPOSTO     = '01'
               and    cod_tp_lanc_imp = '3'             
               AND    ROWNUM          = 1)  base_calculo_3,
               --   
            (SELECT nvl(vlr_imposto, 0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '01'
             and    cod_tp_lanc_imp = '1'
             AND    ROWNUM        = 1)  vlr_imposto_icms_1,
             --
             (SELECT nvl(vlr_imposto, 0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '01'
             and    cod_tp_lanc_imp = '2'
             AND    ROWNUM        = 1)  vlr_imposto_icms_2,
             --
             -- Recupera a Aliquota do imposto IPI
            (SELECT nvl(aliquota,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '01'
             and    cod_tp_lanc_imp = '1'
             AND    ROWNUM        = 1)  aliquota_ICMS_1,  
             --
             (SELECT nvl(aliquota,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '01'
             and    cod_tp_lanc_imp = '2'
             AND    ROWNUM        = 1)  aliquota_ICMS_2,
             --
             --Recuperar o Valor do CST IPI
            (SELECT cod_tribut_ipi
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding     = b.cod_holding
             and    cod_matriz      = b.cod_matriz
             and    cod_filial      = b.cod_filial
             and    id_nf_entrada   = b.id_nf_entrada
             AND    id_item         = b.id_item
             AND    COD_TP_LANC_IMP = '1'
             AND    COD_IMPOSTO     = '02'
             AND    ROWNUM          = 1)  cod_tribut_ipi,
             -- Recupera o Valor da Base de Calculo do imposto IPI
            (SELECT NVL(base_calculo,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '02'
             AND    COD_TP_LANC_IMP = '1'
             AND    ROWNUM        = 1)  base_calculo_ipi_1,
            -- Recupera o Valor da Base de Calculo do imposto IPI
            (SELECT NVL(base_calculo,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '02'
             AND    COD_TP_LANC_IMP = '2'
             AND    ROWNUM        = 1)  base_calculo_ipi_2,
            -- Recupera o Valor da Base de Calculo do imposto IPI
            (SELECT NVL(base_calculo,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '02'
             AND    COD_TP_LANC_IMP = '3'
             AND    ROWNUM        = 1)  base_calculo_ipi_3,             --
             -- Recupera a Aliquota do imposto IPI
            (SELECT nvl(aliquota,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '02'
             AND    ROWNUM        = 1)  aliquota_ipi,
             -- Recupera o Valor do imposto IPI
            (SELECT nvl(vlr_imposto, 0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '02'
             AND    ROWNUM        = 1)  vlr_imposto_ipi,
             --
             -- Recuperar Valores do Imposto 03
             --
             -- Recupera o Valor da Base de Calculo do imposto 03
            (SELECT NVL(base_calculo,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '03'
             AND    COD_TP_LANC_IMP = '1'
             AND    ROWNUM        = 1)  base_calculo_st_1,
              -- Recupera o Valor da Base de Calculo do imposto 03
            (SELECT NVL(base_calculo,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '03'
             AND    COD_TP_LANC_IMP = '2'
             AND    ROWNUM        = 1)  base_calculo_st_2, 
             --
             -- Recupera o Valor da Base de Calculo do imposto 03
            (SELECT NVL(base_calculo,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '03'
             AND    COD_TP_LANC_IMP = '3'
             AND    ROWNUM        = 1)  base_calculo_st_3,
             -- Recupera o Tipo de lancamento do imposto 03 - Substituicao Tributaria
            (SELECT nvl(aliquota,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '03'
             AND    ROWNUM        = 1)  aliquota_st,
             -- Recupera o Valor do imposto 03 - Substituicao Tributaria
            (SELECT nvl(vlr_imposto, 0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '03'
             AND    ROWNUM        = 1)  vlr_imposto_st,
             --
             -- Recuperar valores do Imposto 04
             --
             -- Recupera o Valor da Base de Calculo do imposto 04 - DIFAL
            (SELECT NVL(base_calculo,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '04'
             AND    ROWNUM        = 1)  base_calculo_difal,
             --
             -- Recupera a Aliquota do imposto 04 - DIFAL
            (SELECT nvl(aliquota,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '04'
             AND    ROWNUM        = 1)  aliquota_difal,
             -- Recupera o Valor do imposto 04 - DIFAL
            (SELECT nvl(vlr_imposto, 0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '04'
             AND    ROWNUM        = 1)  vlr_imposto_difal,
             --
             -- Recuperar valores do Imposto J6
             --
             -- Recupera o Valor da Base de Calculo do imposto J6 - DIFAL
            (SELECT NVL(base_calculo,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = 'J6'
             AND    ROWNUM        = 1)  base_calculo_J6,
             --
             -- Recupera o Valor do imposto J6
            (SELECT nvl(vlr_imposto, 0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = 'J6'
             AND    ROWNUM        = 1)  vlr_imposto_J6,
             --
             -- Recuperar valores do Imposto J7
             --
             -- Recupera o Valor da Base de Calculo do imposto J7
            (SELECT NVL(base_calculo,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = 'J7'
             AND    ROWNUM        = 1)  base_calculo_J7,
             --
             -- Recupera o Valor do imposto J7
            (SELECT nvl(vlr_imposto, 0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = 'J7'
             AND    ROWNUM        = 1)  vlr_imposto_J7,
             --
             -- Recuperar valores do Imposto J8
             --
             -- Recupera o Valor da Base de Calculo do imposto J8
            (SELECT NVL(base_calculo,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = 'J8'
             AND    ROWNUM        = 1)  base_calculo_J8,
             --
             -- Recupera o Valor do imposto J8
            (SELECT nvl(vlr_imposto, 0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = 'J8'
             AND    ROWNUM        = 1)  vlr_imposto_J8,
             --
             -- Recuperar Valores do Imposto 09 - PIS
             --
             -- Recupera o Valor da Base de Calculo do imposto 09
            (SELECT NVL(base_calculo,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '09'
             AND    COD_TP_LANC_IMP = '1'
             AND    ROWNUM        = 1)  base_calculo_pis_1,
             --
             -- Recupera o Valor da Base de Calculo do imposto 09
            (SELECT NVL(base_calculo,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '09'
             AND    COD_TP_LANC_IMP = '2'
             AND    ROWNUM        = 1)  base_calculo_pis_2,
             --
             -- Recupera o Valor da Base de Calculo do imposto 09
            (SELECT NVL(base_calculo,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '09'
             AND    COD_TP_LANC_IMP = '3'
             AND    ROWNUM        = 1)  base_calculo_pis_3,
             --
             -- Recupera a Aliquota do imposto 09 - PIS
            (SELECT nvl(aliquota,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '09'
             AND    ROWNUM        = 1)  aliquota_pis,
             -- Recupera o Valor do imposto 09 - PIS
            (SELECT nvl(vlr_imposto, 0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '09'
             AND    ROWNUM        = 1)  vlr_imposto_pis,
             -- Recupera o Codigo da situacao tributaria do imposto 09 - PIS
            (SELECT cod_sit_trib_PIS
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '09'
             AND    ROWNUM        = 1)  cod_sit_trib_pis,
             --
             -- Recuperar Valores do Imposto 10 - COFINS
             --
             -- Recupera o Valor da Base de Calculo do imposto 10
            (SELECT NVL(base_calculo,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '10'
             AND    COD_TP_LANC_IMP = '1'
             AND    ROWNUM        = 1)  base_calculo_cofins_1,
             -- Recupera o Valor da Base de Calculo do imposto 10
            (SELECT NVL(base_calculo,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '10'
             AND    COD_TP_LANC_IMP = '2'
             AND    ROWNUM        = 1)  base_calculo_cofins_2,
             --
             -- Recupera o Valor da Base de Calculo do imposto 10
            (SELECT NVL(base_calculo,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '10'
             AND    COD_TP_LANC_IMP = '3'
             AND    ROWNUM        = 1)  base_calculo_cofins_3,
             --
             -- Recupera a Aliquota do imposto 10 - COFINS
            (SELECT nvl(aliquota,0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '10'
             AND    ROWNUM        = 1)  aliquota_cofins,
             -- Recupera o Valor do imposto 10 - COFINS
            (SELECT nvl(vlr_imposto, 0)
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '10'
             AND    ROWNUM        = 1)  vlr_imposto_cofins,
             -- Recupera o Codigo da situacao tributaria do imposto 10 - COFINS
            (SELECT cod_sit_trib_cof
             FROM   LF_NF_entrada_IMPOSTO
             WHERE  cod_holding   = b.cod_holding
             and    cod_matriz    = b.cod_matriz
             and    cod_filial    = b.cod_filial
             and    id_nf_entrada = b.id_nf_entrada
             AND    id_item       = b.id_item
             AND    COD_IMPOSTO   = '10'
             AND    ROWNUM        = 1)  cod_sit_trib_cof
        from   lf_nf_entrada          a,
               lf_nf_entrada_item     b,
               lf_nf_entrada_imposto  c
        where  a.cod_holding   = 'JNJ BR'
        and    a.dt_entrada >= to_date('01/01/2013','dd/mm/yyyy')
        and    a.cod_status  = '01'
        and    b.cod_holding  = a.cod_holding
        and    b.cod_matriz   = a.cod_matriz
        and    b.cod_filial   = a.cod_filial
        and    b.id_nf_entrada = a.id_nf_entrada
        and    c.cod_holding   = b.cod_holding
        and    c.cod_matriz    = b.cod_matriz
        and    c.cod_filial    = b.cod_filial
        and    c.id_nf_entrada = b.id_nf_entrada
        and    c.id_item       = b.id_item
        and    c.cod_imposto   = '01'
       --
       UNION ALL
       --   
       select distinct 
              'S'                   TIPO_NF,
              a.COD_HOLDING,
              a.COD_MATRIZ,
              a.COD_FILIAL, 
              NULL                  ID_NF,
              a.NUM_NF,
              A.SERIE,
              A.COD_MODELO,
              a.COD_CFOP_LEGAL,
              a.COD_CLIFOR,
              a.DT_EMISSAO,
              NULL                  DT_LANCAMENTO,
              a.dt_emissao          DT_ENTRADA,
              A.COD_STATUS,
              A.COD_UF,
              A.MUNICIPIO,
              A.RAZAOSOCIAL,
              A.CGC_CPF,
              a.VLR_TOTAL_PRODUTOS,
              b.VLR_BRUTO           TOTAL_ITEM,
              a.ICMS_BASE_TOTAL,
              a.ICMS_VALOR_TOTAL,
              a.ICMS_ST_BASE_TOTAL,
              a.ICMS_ST_VALOR_TOTAL,
              a.VLR_FRETE,
              a.VLR_SEGURO,
              a.VLR_DESPESAS,
              a.IPI_TRIBUTADO,
              a.IPI_NAO_TRIBUTADO,
              A.DOCNUM,
              b.id_item,
              b.COD_PRODUTO,
              b.COD_UNID_MEDIDA,
              b.COD_CLASSIF_FISCAL,
              b.QUANTIDADE,
              b.VLR_UNITARIO,
              b.VLR_DESCONTO,
              b.DESCRICAO_NOTA,
              b.dig_cfop,
              b.cod_grp_produto,
              b.cod_iva,
              C.COD_ORIGEM_PROD,
              B.CTA_CTB_MATERIAL,
              A.LANCTO_CONTABIL,
              A.CHAVE_NF_E,
              NULL                NUMERO_DI,
              c.COD_TRIBUT_ICMS,
              c.COD_SIT_TRIB_IPI,  
              c.COD_IMPOSTO,
              --
              (SELECT NVL(base_calculo,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_municipio   = b.cod_municipio
              and    cod_cfop_legal  = b.cod_cfop_legal
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO     = '01'
              and    cod_tp_lanc_imp = '1'
              AND    ROWNUM          = 1 )  base_calculo_1,
               --
              (SELECT NVL(base_calculo,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_municipio   = b.cod_municipio
              and    cod_cfop_legal  = b.cod_cfop_legal
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO     = '01'
              and    cod_tp_lanc_imp = '2'             
              AND    ROWNUM          = 1)  base_calculo_2,
               --
              (SELECT NVL(base_calculo,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_municipio   = b.cod_municipio
              and    cod_cfop_legal  = b.cod_cfop_legal
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO     = '01'
              and    cod_tp_lanc_imp = '3'             
              AND    ROWNUM          = 1)  base_calculo_3,
               --   
            (SELECT nvl(vlr_imposto, 0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_municipio   = b.cod_municipio
              and    cod_cfop_legal  = b.cod_cfop_legal
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO   = '01'
              and    cod_tp_lanc_imp = '1'
              AND    ROWNUM        = 1)  vlr_imposto_icms_1,
              --
              (SELECT nvl(vlr_imposto, 0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_municipio   = b.cod_municipio
              and    cod_cfop_legal  = b.cod_cfop_legal
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO   = '01'
              and    cod_tp_lanc_imp = '2'
              AND    ROWNUM        = 1)  vlr_imposto_icms_2,
             --
             -- Recupera a Aliquota do imposto IPI
            (SELECT nvl(aliquota,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_municipio   = b.cod_municipio
              and    cod_cfop_legal  = b.cod_cfop_legal
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO     = '01'
              and    cod_tp_lanc_imp = '1'
              AND    ROWNUM          = 1)  aliquota_ICMS_1, 
              --
              (SELECT nvl(aliquota,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_municipio   = b.cod_municipio
              and    cod_cfop_legal  = b.cod_cfop_legal
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO     = '01'
              and    cod_tp_lanc_imp = '2'
              AND    ROWNUM          = 1)  aliquota_ICMS_2,
              --
              --Recuperar o Valor do CST IPI
             (SELECT cod_tribut_ipi
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_municipio   = b.cod_municipio
              and    cod_cfop_legal  = b.cod_cfop_legal
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO     = '02'
              and    cod_tp_lanc_imp = '1'
              AND    ROWNUM          = 1)  cod_tribut_ipi,
              --
              -- Recupera o Valor da Base de Calculo do imposto IPI
             (SELECT NVL(base_calculo,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_municipio   = b.cod_municipio
              and    cod_cfop_legal  = b.cod_cfop_legal
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO     = '02'
              and    cod_tp_lanc_imp = '1'
              AND    ROWNUM        = 1)  base_calculo_ipi_1,
              --
              -- Recupera o Valor da Base de Calculo do imposto IPI
             (SELECT NVL(base_calculo,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_municipio   = b.cod_municipio
              and    cod_cfop_legal  = b.cod_cfop_legal
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO     = '02'
              and    cod_tp_lanc_imp = '2'
              AND    ROWNUM        = 1)  base_calculo_ipi_2,
              --
              -- Recupera o Valor da Base de Calculo do imposto IPI
             (SELECT NVL(base_calculo,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_municipio   = b.cod_municipio
              and    cod_cfop_legal  = b.cod_cfop_legal
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO     = '02'
              and    cod_tp_lanc_imp = '3'
              AND    ROWNUM        = 1)  base_calculo_ipi_3,
              -- Recupera o Tipo de lancamento do imposto IPI

              -- Recupera a Aliquota do imposto IPI
             (SELECT nvl(aliquota,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_municipio   = b.cod_municipio
              and    cod_cfop_legal  = b.cod_cfop_legal
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO     = '02'
              AND    ROWNUM          = 1)  aliquota_ipi,
              -- Recupera o Valor do imposto IPI
             (SELECT nvl(vlr_imposto, 0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_municipio   = b.cod_municipio
              and    cod_cfop_legal  = b.cod_cfop_legal
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO   = '02'
              AND    ROWNUM        = 1)  vlr_imposto_ipi,
              --
              -- Recuperar Valores do Imposto 03
              --
              -- Recupera o Valor da Base de Calculo do imposto 03
             (SELECT NVL(base_calculo,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_municipio   = b.cod_municipio
              and    cod_cfop_legal  = b.cod_cfop_legal
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO     = '03'
              and    cod_tp_lanc_imp = '1'
              AND    ROWNUM          = 1)  base_calculo_st_1,
              --
              -- Recupera o Valor da Base de Calculo do imposto 03
             (SELECT NVL(base_calculo,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_municipio   = b.cod_municipio
              and    cod_cfop_legal  = b.cod_cfop_legal
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO     = '03'
              and    cod_tp_lanc_imp = '2'
              AND    ROWNUM          = 1)  base_calculo_st_2,
              --
              -- Recupera o Valor da Base de Calculo do imposto 03
             (SELECT NVL(base_calculo,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_municipio   = b.cod_municipio
              and    cod_cfop_legal  = b.cod_cfop_legal
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO     = '03'
              and    cod_tp_lanc_imp = '3'
              AND    ROWNUM          = 1)  base_calculo_st_3,
              --
              -- Recupera o Tipo de lancamento do imposto 03 - Substituicao Tributaria
              -- Recupera a Aliquota do imposto Substituicao Tributaria
             (SELECT nvl(aliquota,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_cfop_legal  = b.cod_cfop_legal
              and    cod_municipio   = b.cod_municipio
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO   = '03'
              AND    ROWNUM        = 1)  aliquota_st,
              -- Recupera o Valor do imposto 03 - Substituicao Tributaria
             (SELECT nvl(vlr_imposto, 0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_cfop_legal  = b.cod_cfop_legal
              and    cod_municipio   = b.cod_municipio
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO   = '03'
              AND    ROWNUM        = 1)  vlr_imposto_st,
              --
              -- Recuperar valores do Imposto 04
              --
              -- Recupera o Valor da Base de Calculo do imposto 04 - DIFAL
             (SELECT NVL(base_calculo,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_cfop_legal  = a.cod_cfop_legal
              and    cod_municipio   = b.cod_municipio
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO   = '04'
              AND    ROWNUM        = 1)  base_calculo_difal,
              --
              -- Recupera a Aliquota do imposto 04 - DIFAL
             (SELECT nvl(aliquota,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_cfop_legal  = b.cod_cfop_legal
              and    cod_municipio   = b.cod_municipio
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO     = '04'
              AND    ROWNUM          = 1)  aliquota_difal,
              -- Recupera o Valor do imposto 04 - DIFAL
             (SELECT nvl(vlr_imposto, 0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_cfop_legal  = b.cod_cfop_legal
              and    cod_municipio   = b.cod_municipio
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO   = '04'
              AND    ROWNUM        = 1)  vlr_imposto_difal,
              --
              -- Recuperar valores do Imposto J6
              --
              -- Recupera o Valor da Base de Calculo do imposto J6 - DIFAL
             (SELECT NVL(base_calculo,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_cfop_legal  = b.cod_cfop_legal
              and    cod_municipio   = b.cod_municipio
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO   = 'J6'
              AND    ROWNUM        = 1)  base_calculo_J6,
              --
              -- Recupera o Valor do imposto J6
             (SELECT nvl(vlr_imposto, 0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_cfop_legal  = b.cod_cfop_legal
              and    cod_municipio   = b.cod_municipio
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO   = 'J6'
              AND    ROWNUM        = 1)  vlr_imposto_J6,
              --
              -- Recuperar valores do Imposto J7
              --
              -- Recupera o Valor da Base de Calculo do imposto J7
             (SELECT NVL(base_calculo,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_cfop_legal  = b.cod_cfop_legal
              and    cod_municipio   = b.cod_municipio
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO   = 'J7'
              AND    ROWNUM        = 1)  base_calculo_J7,
              --
              -- Recupera o Valor do imposto J7
             (SELECT nvl(vlr_imposto, 0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_cfop_legal  = b.cod_cfop_legal
              and    cod_municipio   = b.cod_municipio
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO   = 'J7'
              AND    ROWNUM        = 1)  vlr_imposto_J7,
              --
              -- Recuperar valores do Imposto J8
              --
              -- Recupera o Valor da Base de Calculo do imposto J8
             (SELECT NVL(base_calculo,0)
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_cfop_legal  = b.cod_cfop_legal
              and    cod_municipio   = b.cod_municipio
              AND    id_item         = b.id_item
              AND    COD_IMPOSTO   = 'J8'
              AND    ROWNUM        = 1)  base_calculo_J8,
              --
              -- Recupera o Valor do imposto J8
              (SELECT nvl(vlr_imposto, 0)
               FROM   lf_nf_saida_imposto
               WHERE  cod_holding     = b.cod_holding
               and    cod_matriz      = b.cod_matriz
               and    cod_filial      = b.cod_filial
               and    num_nf          = b.num_nf
               and    serie           = b.serie
               and    subserie        = b.subserie
               and    dt_emissao      = b.dt_emissao
               and    cod_cfop_legal  = b.cod_cfop_legal
               and    cod_municipio   = b.cod_municipio
               AND    id_item         = b.id_item
               AND    COD_IMPOSTO   = 'J8'
               AND    ROWNUM        = 1)  vlr_imposto_J8,
               --
               -- Recuperar Valores do Imposto 09 - PIS
               --
               -- Recupera o Valor da Base de Calculo do imposto 09
              (SELECT NVL(base_calculo,0)
               FROM   lf_nf_saida_imposto
               WHERE  cod_holding     = b.cod_holding
               and    cod_matriz      = b.cod_matriz
               and    cod_filial      = b.cod_filial
               and    num_nf          = b.num_nf
               and    serie           = b.serie
               and    subserie        = b.subserie
               and    dt_emissao      = b.dt_emissao
               and    cod_cfop_legal  = b.cod_cfop_legal
               and    cod_municipio   = b.cod_municipio
               AND    id_item         = b.id_item
               AND    COD_IMPOSTO   = '09'
               and    cod_tp_lanc_imp = '1'
               AND    ROWNUM        = 1)  base_calculo_pis_1,
               --
               -- Recupera o Valor da Base de Calculo do imposto 09
              (SELECT NVL(base_calculo,0)
               FROM   lf_nf_saida_imposto
               WHERE  cod_holding     = b.cod_holding
               and    cod_matriz      = b.cod_matriz
               and    cod_filial      = b.cod_filial
               and    num_nf          = b.num_nf
               and    serie           = b.serie
               and    subserie        = b.subserie
               and    dt_emissao      = b.dt_emissao
               and    cod_cfop_legal  = b.cod_cfop_legal
               and    cod_municipio   = b.cod_municipio
               AND    id_item         = b.id_item
               AND    COD_IMPOSTO     = '09'
               and    cod_tp_lanc_imp = '2'
               AND    ROWNUM        = 1)  base_calculo_pis_2,
               --
               -- Recupera o Valor da Base de Calculo do imposto 09
              (SELECT NVL(base_calculo,0)
               FROM   lf_nf_saida_imposto
               WHERE  cod_holding     = b.cod_holding
               and    cod_matriz      = b.cod_matriz
               and    cod_filial      = b.cod_filial
               and    num_nf          = b.num_nf
               and    serie           = b.serie
               and    subserie        = b.subserie
               and    dt_emissao      = b.dt_emissao
               and    cod_cfop_legal  = b.cod_cfop_legal
               and    cod_municipio   = b.cod_municipio
               AND    id_item         = b.id_item
               AND    COD_IMPOSTO     = '09'
               and    cod_tp_lanc_imp = '3'
               AND    ROWNUM        = 1)  base_calculo_pis_3,
               --
               -- Recupera o Tipo de lancamento do imposto 09 - PIS
                -- Recupera a Aliquota do imposto 09 - PIS
              (SELECT nvl(aliquota,0)
               FROM   lf_nf_saida_imposto
               WHERE  cod_holding     = b.cod_holding
               and    cod_matriz      = b.cod_matriz
               and    cod_filial      = b.cod_filial
               and    num_nf          = b.num_nf
               and    serie           = b.serie
               and    subserie        = b.subserie
               and    dt_emissao      = b.dt_emissao
               and    cod_cfop_legal  = b.cod_cfop_legal
               and    cod_municipio   = b.cod_municipio
               AND    id_item         = b.id_item
               AND    COD_IMPOSTO   = '09'
               AND    ROWNUM        = 1)  aliquota_pis,
               -- Recupera o Valor do imposto 09 - PIS
              (SELECT nvl(vlr_imposto, 0)
               FROM   lf_nf_saida_imposto
               WHERE  cod_holding     = b.cod_holding
               and    cod_matriz      = b.cod_matriz
               and    cod_filial      = b.cod_filial
               and    num_nf          = b.num_nf
               and    serie           = b.serie
               and    subserie        = b.subserie
               and    dt_emissao      = b.dt_emissao
               and    cod_cfop_legal  = b.cod_cfop_legal
               and    cod_municipio   = b.cod_municipio
               AND    id_item         = b.id_item
               AND    COD_IMPOSTO   = '09'
               AND    ROWNUM        = 1)  vlr_imposto_pis,
               -- Recupera o Codigo da situacao tributaria do imposto 09 - PIS
              (SELECT cod_sit_trib_PIS
               FROM   lf_nf_saida_imposto
               WHERE  cod_holding     = b.cod_holding
               and    cod_matriz      = b.cod_matriz
               and    cod_filial      = b.cod_filial
               and    num_nf          = b.num_nf
               and    serie           = b.serie
               and    subserie        = b.subserie
               and    dt_emissao      = b.dt_emissao
               and    cod_cfop_legal  = b.cod_cfop_legal
               and    cod_municipio   = b.cod_municipio
               AND    id_item         = b.id_item
               AND    COD_IMPOSTO   = '09'
               AND    ROWNUM        = 1)  cod_sit_trib_pis,
               --
               -- Recuperar Valores do Imposto 10 - COFINS
               --
               -- Recupera o Valor da Base de Calculo do imposto 10
              (SELECT NVL(base_calculo,0)
               FROM   lf_nf_saida_imposto
               WHERE  cod_holding     = b.cod_holding
               and    cod_matriz      = b.cod_matriz
               and    cod_filial      = b.cod_filial
               and    num_nf          = b.num_nf
               and    serie           = b.serie
               and    subserie        = b.subserie
               and    dt_emissao      = b.dt_emissao
               and    cod_cfop_legal  = b.cod_cfop_legal
               and    cod_municipio   = b.cod_municipio
               AND    id_item         = b.id_item
               AND    COD_IMPOSTO   = '10'
               and    cod_tp_lanc_imp = '1'
               AND    ROWNUM        = 1)  base_calculo_cofins_1,
               --
               --
               -- Recupera o Valor da Base de Calculo do imposto 10
              (SELECT NVL(base_calculo,0)
               FROM   lf_nf_saida_imposto
               WHERE  cod_holding     = b.cod_holding
               and    cod_matriz      = b.cod_matriz
               and    cod_filial      = b.cod_filial
               and    num_nf          = b.num_nf
               and    serie           = b.serie
               and    subserie        = b.subserie
               and    dt_emissao      = b.dt_emissao
               and    cod_cfop_legal  = b.cod_cfop_legal
               and    cod_municipio   = b.cod_municipio
               AND    id_item         = b.id_item
               AND    COD_IMPOSTO     = '10'
               and    cod_tp_lanc_imp = '2'
               AND    ROWNUM        = 1)  base_calculo_cofins_2,
               --
               --
               -- Recupera o Valor da Base de Calculo do imposto 10
              (SELECT NVL(base_calculo,0)
               FROM   lf_nf_saida_imposto
               WHERE  cod_holding     = b.cod_holding
               and    cod_matriz      = b.cod_matriz
               and    cod_filial      = b.cod_filial
               and    num_nf          = b.num_nf
               and    serie           = b.serie
               and    subserie        = b.subserie
               and    dt_emissao      = b.dt_emissao
               and    cod_cfop_legal  = b.cod_cfop_legal
               and    cod_municipio   = b.cod_municipio
               AND    id_item         = b.id_item
               AND    COD_IMPOSTO     = '10'
               and    cod_tp_lanc_imp = '3'
               AND    ROWNUM        = 1)  base_calculo_cofins_3,
               -- Recupera a Aliquota do imposto 10 - COFINS
              (SELECT nvl(aliquota,0)
               FROM   lf_nf_saida_imposto
               WHERE  cod_holding     = b.cod_holding
               and    cod_matriz      = b.cod_matriz
               and    cod_filial      = b.cod_filial
               and    num_nf          = b.num_nf
               and    serie           = b.serie
               and    subserie        = b.subserie
               and    dt_emissao      = b.dt_emissao
               and    cod_cfop_legal  = b.cod_cfop_legal
               and    cod_municipio   = b.cod_municipio
               AND    id_item         = b.id_item
               AND    COD_IMPOSTO   = '10'
               AND    ROWNUM        = 1)  aliquota_cofins,
               -- Recupera o Valor do imposto 10 - COFINS
              (SELECT nvl(vlr_imposto, 0)
               FROM   lf_nf_saida_imposto
               WHERE  cod_holding     = b.cod_holding
               and    cod_matriz      = b.cod_matriz
               and    cod_filial      = b.cod_filial
               and    num_nf          = b.num_nf
               and    serie           = b.serie
               and    subserie        = b.subserie
               and    dt_emissao      = b.dt_emissao
               and    cod_cfop_legal  = b.cod_cfop_legal
               and    cod_municipio   = b.cod_municipio
               AND    id_item         = b.id_item
               AND    COD_IMPOSTO   = '10'
               AND    ROWNUM        = 1)  vlr_imposto_cofins,
               -- Recupera o Codigo da situacao tributaria do imposto 10 - COFINS
              (SELECT cod_sit_trib_cof
               FROM   lf_nf_saida_imposto
               WHERE  cod_holding     = b.cod_holding
               and    cod_matriz      = b.cod_matriz
               and    cod_filial      = b.cod_filial
               and    num_nf          = b.num_nf
               and    serie           = b.serie
               and    subserie        = b.subserie
               and    dt_emissao      = b.dt_emissao
               and    cod_cfop_legal  = b.cod_cfop_legal
               and    cod_municipio   = b.cod_municipio
               AND    id_item         = b.id_item
               AND    COD_IMPOSTO   = '10'
               AND    ROWNUM        = 1)  cod_sit_trib_cof
       from   lf_nf_saida         a,
              lf_nf_saida_item    b,
              lf_nf_saida_imposto c
       where  a.cod_holding   = 'JNJ BR'
       and    a.dt_emissao    >= to_date('01/01/2013','dd/mm/yyyy')
       and    a.cod_status     = '01'
       and    b.cod_holding    = a.cod_holding
       AND    b.cod_matriz     = a.cod_matriz
       AND    b.cod_filial     = a.cod_filial
       AND    b.num_nf         = a.num_nf
       AND    b.serie          = a.serie
       AND    b.subserie       = a.subserie
       AND    b.dt_emissao     = a.dt_emissao
       AND    b.cod_cfop_legal = a.cod_cfop_legal
       AND    b.cod_municipio  = a.cod_municipio
       AND    c.cod_holding    = b.cod_holding
       AND    c.cod_matriz     = b.cod_matriz
       AND    c.cod_filial     = b.cod_filial
       AND    c.num_nf         = b.num_nf
       AND    c.serie          = b.serie
       AND    c.subserie       = b.subserie
       AND    c.dt_emissao     = b.dt_emissao
       AND    c.cod_cfop_legal = b.cod_cfop_legal
       AND    c.cod_municipio  = b.cod_municipio
       AND    c.id_item        = b.id_item
       and    c.cod_imposto    ='01';

Share this post


Link to post
Share on other sites

As n entradas de LF_NF_entrada_IMPOSTO , poderiam ser uma e os valores

tratados por max e case por exemplo.

 

 

Share this post


Link to post
Share on other sites

fazendo um join e não N subselect , algo como


 

              ..

             MAX(CASE WHEN COD_IMPOSTO   = 'J6' THEN nvl(vlr_imposto, 0) ELSE NULL)) vlr_imposto_J6,
              MAX(CASE WHEN COD_IMPOSTO   = 'J7' THEN nvl(vlr_imposto, 0) ELSE NULL)) vlr_imposto_J7,
              ...
              FROM   lf_nf_saida_imposto
              WHERE  cod_holding     = b.cod_holding
              and    cod_matriz      = b.cod_matriz
              and    cod_filial      = b.cod_filial
              and    num_nf          = b.num_nf
              and    serie           = b.serie
              and    subserie        = b.subserie
              and    dt_emissao      = b.dt_emissao
              and    cod_cfop_legal  = b.cod_cfop_legal
              and    cod_municipio   = b.cod_municipio
              AND    id_item         = b.id_item

             group by ...

mas veja , não analisei sua sql , nem dá face ao tananho , apenas a principio me parece que os muitos subs poderiam ser eliminados

 

[]´s

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By mr22robot
      Boa tarde. Estou com o seguinte problema: Preciso retornar um selct da seguinte maneira:
      exemplo que não funciona:
      select codusur,numnota,codcli,cliente,vltotal,numtransvenda,dev,decode(vlvenda),if(vlvenda > 100 then 1 else 2) from( select tb1.codusur,tb1.numnota,tb1.codcli,tb1.cliente,tb1.vltotal,tb1.numtransvenda,DECODE(tb2.VLTOTAL,NULL,0,tb2.VLTOTAL)DEV from( select codusur,numnota,pcnfsaid.codcli,pcnfsaid.cliente,pcnfsaid.vltotal,pcnfsaid.numtransvenda from pcnfsaid where pcnfsaid.dtsaida > '01-OCT-2020' and pcnfsaid.dtcancel is null )tb1 left outer join (select DISTINCT VLTOTAL,VW_INTEGRA_DEVOLUCAO_TOTAL.NUMTRANSVENDA from VW_INTEGRA_DEVOLUCAO_TOTAL )tb2 on tb1.NUMTRANSVENDA = tb2.NUMTRANSVENDA order by numnota ) Como pode reparar, eu usei um if/else já que não sei a forma correta de usar. Pois com DECODE não consegui usar uma forma de fazer a comparação. 
      Pois preciso mesmo retornar uns valores fixos. Ex: 
      Se o valor > 40000, retorna um valor x; Se for maior que 5000 retorna um valor y. 
      Aguardo a ajuda dos amigos. Grato
    • By david2007
      Endpointer Framework é um Framework PHP para construção de APIs REST com Programação Procedural.
       
      http://endpointer.com
       
      Endpointer Framework é Código Aberto sob a licença MIT
       

    • By MarcosAntonio
      boa tarde. 
      Estou precisando de um Select que retorne uma soma que ao chegar a determinado valor ela reinicie e continue fazendo sucessivamente
       select   pedido,   volume,   limite,   SUM(volume) over (order by pedido ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) saldo   from pedidos  group by pedido o select está retornando assim porém quero que toda vez que chegue ou passe do limite resete o saldo, por exemplo parar no 100 que é o limite e começar um novo saldo
      pedido     volume    limite    saldo  1             70            100        70  2             10            100        80  3             20            100        100  4             50            100        150  5             30            100        180  
      preciso que ele soma o volume enquanto o saldo seja <= que o "limite", quando passar pare de somar e comece outra soma começando do 0, como no exemplo abaixo.
      pedido    volume    limite    saldo  1             70            100        70  2             10            100        80  3             20            100        100  4             50            100        50  5             30            100        80  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.