Jump to content

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 MatheusSmidt
      Bom dia,
      Estou precisando de ajuda com o código do formulário de um sistema de cadastro.
      A página é para consulta mas tem a possibilidade de adicionar ou retirar "faltas" de cada profissional cadastrado através de botões simples e também apagar um ou múltiplos profissionais da lista, através de checkbox..
      Essa ações atualizam o banco de dados e já retornam na tela automaticamente.
      O problema é que não fui eu que estruturei o código PHP e não consigo aliar as duas funções que falei anteriormente. Quando consigo fazer funcionar o sistema de adição e redução de faltas, consigo apenas excluir o último nome da lista, mesmo selecionando vários. E quando consigo resolver a parte de excluir vários nomes, não consigo adicionar e reduzir o número de faltas.
       
      Provavelmente é um problema no "WHILE" ou na abertura e fechamento de formulário. Porém não consegui resolver.
      Se alguém conseguir resolver seria ótimo.
      Agradeço desde já. Em anexo envio um print da página para melhor entendimento.
       
       
       
       
    • By Matheus_Moura
      Boa tarde.
      Estou fazendo uma aplicação PHP em um PC Linux com Lubuntu como SO, para conexão com um banco de dados ORACLE 11g. Porém quando utilizo a função oci_connect ou qualquer outra função para oracle é retornado uma mensagem informando que estão indefenidas.
      Estou utilizando o XAMPP como servidor e fiz a configuração no caminho opt/lampp/etc/php.ini retirando o ; tanto no php_oci8.dll como também na php_oracle.dll, porém não obtive sucesso. Coloquei dentro da pasta opt também o instantclient já descompactado e utilizei o PECL para tentar ativar as OCI, porém mesmo assim ainda não consegui sucesso. Alguém teria alguma outra sugestão ?
       
      Att,
      Matheus Moura
    • By guilherme_soi
      Ao acessar o meu aplicativo recebo a seguinte mensagem: 'the dbname and launch parameters must be specified on first run' como resolver?
       
      Ao acessar o meu aplicativo recebo a seguinte mensagem: 'the dbname and launch parameters must be specified on first run' como resolver? Existe algo que possa ser feito?
    • By marlone
      Preciso fazer uma consulta no banco onde eu pego total gasto por CPF, somando cada row que for do mesmo CPF por exemplo:
       
       
      Cpf    ctro    vlr               vlrtotal
      158   166     1000         5000
      158   156     1000         5000
      158   1644   3000        5000
       
      159   168     2000         6000
      159   154     2000         6000
      159   111     2000         6000
       
      É possível?
×

Important Information

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