	SELECT

        r.nome_empresa,
        r.cod_produto,
        r.denominacao_produto,
        r.cod_fiscal,
        SUM(r.quantidade) AS quantidade,
        SUM(r.total_bruto) AS total_bruto,
        SUM(r.desconto) AS desconto,
        SUM(r.acrescimo) AS acrescimo,
        SUM(r.valor_liquido) AS valor_liquido,
        r.cst_pis_saida,
		SUM(r.base_pis) AS base_pis,
        r.aliquota_tributacao_pis_saida,
        SUM(r.valor_pis) AS valor_pis,
        r.cst_cofins_saida,
		SUM(r.base_cofins) AS base_cofins,
        r.aliquota_tributacao_cofins_saida,
        SUM(r.valor_cofins) AS valor_cofins,
        r.base_icms, 
        r.aliquota_icms, 
        r.icms


    FROM (

        SELECT
            se.nome AS nome_empresa,
            i.codigo AS cod_produto,
            i.denominacao AS denominacao_produto,
            cf.codigo AS cod_fiscal,
            infs.quantidade AS quantidade,
            (infs.total_item + infs.desconto - infs.acrescimo) AS total_bruto,
            infs.desconto AS desconto,
            infs.acrescimo AS acrescimo,
            infs.total_item AS valor_liquido,
            infs.base_icms, 
            infs.aliquota_icms, 
            infs.icms,
            
            
            cstp.codigo AS cst_pis_saida,
			infs.base_pis,
            infs.aliquota_pis AS aliquota_tributacao_pis_saida,
			infs.pis AS  valor_pis,
            
			cstc.codigo AS cst_cofins_saida,
			infs.base_cofins,
            infs.aliquota_cofins AS aliquota_tributacao_cofins_saida,
			infs.cofins AS valor_cofins

            FROM nota_fiscal_saida AS nfs 
			INNER JOIN modelo_documento_fiscal AS mdf ON (mdf.id_modelo_documento_fiscal = nfs.id_modelo_documento_fiscal)
			INNER JOIN sis_empresa AS se ON (se.id_empresa = nfs.id_empresa)
			INNER JOIN item_nfs AS infs ON (infs.id_nota_fiscal_saida = nfs.id_nota_fiscal_saida)
			INNER JOIN item AS i ON (i.id_item = infs.id_item)
			INNER JOIN categoria_item AS ci ON (ci.id_categoria_item = i.id_categoria_item)
            INNER JOIN codigo_fiscal AS cf ON (cf.id_codigo_fiscal = i.id_codigo_fiscal)
			INNER JOIN unidade_medida AS um ON (um.id_unidade_medida = infs.id_unidade_medida)
			LEFT OUTER JOIN cst AS cst ON (cst.id_cst = infs.id_cst_icms)
			INNER JOIN cst AS cstp ON (cstp.id_cst = infs.id_cst_pis)
			INNER JOIN cst AS cstc ON (cstc.id_cst = infs.id_cst_cofins)
			INNER JOIN cfop AS cfop ON (cfop.id_cfop = infs.id_cfop)
			INNER JOIN item_empresa AS ie ON (ie.id_item = i.id_item AND ie.id_empresa = nfs.id_empresa)

    WHERE nfs.emissao BETWEEN :DataInicial AND :DataFinal
    AND mdf.codigo_modelo_documento = '65'
    AND COALESCE(TRIM(nfs.chave_acesso_nfe), '') != ''
    AND nfs.situacao = 1
    ) AS r GROUP BY 
        r.nome_empresa,
        r.cod_produto,
        r.denominacao_produto,
        r.cod_fiscal,
        r.cst_pis_saida,
        r.aliquota_tributacao_pis_saida,
        r.cst_cofins_saida,
        r.aliquota_tributacao_cofins_saida,
        r.base_icms, 
        r.aliquota_icms, 
        r.icms