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
)