Erro ocorre ao tentar emitir o relatório de Vendas x Garçom, independente da data ou intervalo de filtro.

ATENÇÃO: TODA E QUALQUER AÇÃO NO BANCO DE DADOS EXIGE BACKUP ANTES E É DE RESPONSABILIDADE DO OPERADOR.

O problema se dá porque existem registros na tabela vendaItem com valorTotal zerado, e idStatusItem = 1, isso ocasiona erro no relatório de garçons, já que é feita uma divisão pra calcular a taxa do garçom, logo é apresentado o erro de divisão por zero.

Utilize o select abaixo para identificar os registros com valor total 0,00 e idStatusItem = 2

select G.id, G.Nome, VI.ValorTotal ViTotal, DF.ValorTaxaServico Taxa, VI.Id, VI.IdStatusItem
from VendaItem VI, DocumentoFiscal DF, VendaCupomFiscal VCF, Venda V, Garcom G

where VI.IdGarcom = XXXXX -- id do Garçom
and VI.Data = '22/11/2020'
 -- Data da Venda
and VI.IdStatusItem <> 2
and VI.IdVenda = V.Id
and V.id = VCF.IdVenda
and VI.IdGarcom = G.id
and VCF.IdDocumentoFiscal = DF.Id



group by G.id, G.nome, Vi.ValorTotal, DF.ValorTaxaServico, Vi.id, VI.IdStatusItem

A solução é aplicar o update abaixo. IMPORTANTE: os ids variam de acordo com a situação. Os ids abaixo são de EXEMPLO.

update VendaItem 

set IdStatusItem = 2

where id in
(

1815050003,
1815200003,
1815290003,
1815410003,
1815420003,
1821290003
)