select 
  *
from (
  select
    r.filial,
    r.vendedor,
    r.nome,
    r.vendas vendas_quantidade_total,
    r.devolucoes,
    r.total vendas_quant,
    (r.total + 0.00) / (datediff(day from :Data_Inicial to :Data_Final) + 1) vendas_quant_media_diaria,
    cast(r.itens as integer) itens_quant,
    cast(iif(r.total > 0, r.itens / r.total, 0) as numeric(13,2)) medias_itens_por_nf,
    r.valor total_vendas,
    r.valor / (datediff(day from :Data_Inicial to :Data_Final) + 1) vendas_media_diaria,
    iif(r.total > 0, r.valor / r.total, 0) ticket_medio
  from (
    select
    iif(ne.filial = 1 and ne.operacao in (1003, 1117, 1125, 1145, 1161, 1162), 100, ne.filial) filial,
    ne.vendedor,
    o.nome,
    sum(case when ne.tipo = 'A' then 1 else 0 end) vendas,
    sum(case when ne.tipo = 'B' then 1 else 0 end) devolucoes,
    sum(case when ne.tipo = 'B' then -1 else 1 end) total,
    sum(case when ne.tipo = 'B' then -ie.quantidade else ie.quantidade end) itens,
    sum(case when ne.tipo = 'B' then -ie.total else ie.total end) valor
    from
    itens_emitidos ie
    inner join notas_emitidas ne on ie.nota = ne.nota and ie.filial = ne.filial
    inner join itens i on ie.item = i.item
    inner join operadores o on ne.vendedor = o.operador
    where
    ne.tipo in ('A', 'B') and ne.cancelada = 'N'
    and ne.data >= :Data_Inicial and ne.data < :Data_Final + 1
    and (ne.vendedor = :Vendedor or :Vendedor = 0)
    and (ne.filial = :Filial or (ne.filial = 1 and :Filial = 100) or :Filial = 0)
    group by
    1, 2, 3
    ) r
  order by
    2 desc
  ) r
where
  r.filial = :Filial or :Filial = 0
