Si el resultado de la primera consulta es el correcto, yo añadiría en el where:
Código SQL
[-]
where [tu sql]
and (visit.Regdate is not null)
and (visit.NExtTime is not null)
and (visit.Endtime is not null)
No trabajo con sqlserver, pero creo que vale.
Si usas ISNULL y el nexTime es un nulo, se contará ese registro en el agregado, colocando un cero para ese registro al hallar la media (avg).
Si usas mi sugerencia, eliminas los registros con valores nulos
antes de hacer el agregado, así no entran en la media y eliminas el aviso de sqlserver.
Saludos