select
  resumo.*,
  cast((resumo.vendas_quant + 0.00) / (datediff(day from :Data_Inicial to :Data_Final) + 1) as numeric(13,2)) vendas_quant_media_diaria,
  cast(iif(resumo.vendas_quant > 0, resumo.itens_quant * 1.00 / resumo.vendas_quant * 1.00, 0) as numeric(13,2)) medias_itens_por_nf,
  resumo.total_vendas / (datediff(day from :Data_Inicial to :Data_Final) + 1) vendas_media_diaria,
  cast(iif(resumo.vendas_quant > 0, resumo.total_vendas / resumo.vendas_quant, 0) as numeric(13,2)) ticket_medio
from

(
  select
    filial,
    vendedor,
    nome,
    sum(vendas_quantidade_total) vendas_quantidade_total,
    sum(devolucoes) devolucoes,
    sum(vendas_quantidade_total - devolucoes) vendas_quant,
    sum(itens_quant) itens_quant,
    sum(total_vendas) total_vendas
  from

  (
    select
      notas.filial filial,
      notas.vendedor,
      o.nome,
      iif(notas.opfinanceiro = '+', 1, 0) vendas_quantidade_total,
      iif(notas.opfinanceiro = '-', 1, 0) devolucoes,
      iif(notas.opfinanceiro = '+', notas.itens, -notas.itens) itens_quant,
      iif(notas.opfinanceiro = '+', notas.valor, -notas.valor) total_vendas
    from

    (
      select
        ne.nota, 
        ne.filial filial_original,
        ne.vendedor,
        cast(ne.total as numeric(13,2)) valor,
        ne.opfinanceiro,
        ne.operacao,
        iif(ne.filial = 1 and ne.operacao in (1003, 1117, 1125, 1145, 1161, 1162), 100, ne.filial) filial,
        count(*) itens
      from
        notas_emitidas ne
        inner join itens_emitidos ie on ie.nota = ne.nota and ie.filial = ne.filial
      where
        ne.cancelada = 'N'
        and ne.data >= :Data_Inicial and ne.data < :Data_Final + 1
        and ne.opfinanceiro in ('+', '-')
        and (ne.vendedor = :Vendedor or :Vendedor = 0)
        and (ne.filial = :Filial or (:Filial = 100 and ne.Filial = 1))
      group by
        1, 2, 3, 4, 5, 6
  ) notas

    inner join operadores o on o.operador = notas.vendedor
  where
    (notas.filial = :Filial or :Filial = 0)
) totais

group by
  1, 2, 3
) resumo
