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 johnklo
      COM BASE NA TABELA HR DO ORACLE
      Preciso criar uma sub-rotina (procedure) que imprima na tela o número de funcionários (employees) agrupados por departamentos (department_id). Deve-se ordenar a saída em ordem decrescente pela quantidade de departamentos. Pode-se utilizar qualquer forma de cursor para imprimir o resultado.
    • By c3s1nha
      Boa tarde,
       
      Preciso restaurar a estrutura de um banco de dados (tabelas,views,procedures.. etc) em outro banco de dados que esta vazio (nao tem tabela nenhuma, banco novo), utilizo o sql server. Consigo fazer utilizando o SSMS ?
       
      Para entender melhor estou enviando uma imagem.
       
       
      O banco com todas tabelas,viwes,procedures, registros, etc..  é o Guara_ que esta no servidor   .\SQLEXPRESS   quero fazer uma copia identica dele no banco Nutri no servidor sdb.hsi.
       
      Desde ja agradeço. 

    • By Anderson Campos da Silva
      Olá,
       
      Estou com um problema, que para alguns pode ser simples, é o seguinte:
       
      Tenho 2 tabela relacionadas, MODELO e EQUIPAMENTO
       
      TABELA MODELO
      idModelo (INT) - chave primária  
      txModelo (VARCHAR)
       
      TABELA EQUIPAMENTO 
      idEquipamento (INT) - chave primária   
      patrimonio (VARCHAR)
      situacao (VARCHAR)
      idModelo (INT) - Chave estrangeira
       
      O campo situação pode ser preenchido apenas apenas com PRODUÇÃO OU ESTOQUE.
       
      Enfim, preciso de um SELECT que retorne as seguintes colunas txModelo, quantidade de equipamentos por modelo, quantidade de equipamentos com PRODUÇÃO, e quantidade de equipamentos com ESTOQUE, exemplo:
       
      txModelo | total | produção | estoque
      CISCO           7            4                  3
      HP                15          10                 5
      DELL            10           2                   8
       
      Desde já agradeço
    • By EREGON
      Olá,
      ao chamar a função, estou a receber o erro:
       
      "ORA-01422: extracção exacta devolve mais que o número pedido de linhas"
       
      create or replace FUNCTION "CALC_ADDT_SIM_DISC" (ACCT_INPUT VARCHAR2) RETURN VARCHAR2 IS SIM_MSISDN VARCHAR2(20); BEGIN SELECT CASE WHEN ADDT_DISC_1 = 1 THEN mu.MSISDN WHEN ADDT_DISC_1 > 1 THEN (SELECT DISTINCT t02.MSISDN FROM CDM.DMKV_TRANSP_VAR_RESULT_02 t02 WHERE SERV_ACCT_OLDER_MSISDN_FLG = 'Y' AND PRICING_PLAN_TYPE IN ('valor1', 'valor2') AND t02.DW_SERV_ST_ID='100000003' AND t02.CUST_ACCT_EXT_KEY = ACCT_INPUT ) END MSISDN_ADDT_DISC INTO SIM_MSISDN FROM( SELECT DISTINCT CUST_ACCT_EXT_KEY, COUNT(CUST_ACCT_EXT_KEY) AS ADDT_DISC_1 FROM MOBILE_UPSELL WHERE FLAG_ADDITIONAL_SIM_DISCOUNT = '0' GROUP BY CUST_ACCT_EXT_KEY )t, MOBILE_UPSELL mu WHERE t.CUST_ACCT_EXT_KEY = mu.CUST_ACCT_EXT_KEY AND t.CUST_ACCT_EXT_KEY = ACCT_INPUT; RETURN SIM_MSISDN; END; O que estou a fazer de errado?
       
      Obrigado
×

Important Information

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