El GROUP BY sólo puede tener nombres de alias, columnas reales o bien enteros que representen posiciones. Le estás poniendo una
cadena de texto.
Además de eso, en la consulta que pones tienes condiciones redundantes (las del FROM ya contemplan las del WHERE), que no producen ningún efecto.
Otros detalles son que si tienes un
rango que comparar, es mejor usar BETWEEN y no operadores, y que si todas las condiciones dentro de un paréntesis son AND, el paréntesis es innecesario. Diferente sería si hubiese un OR.
Pruébalo así:
Código MySQL:
Ver original dpmovinv
LEFT JOIN dpclientescero
ON CCG_NUMDOC
= DOC_NUMERO
AND CCG_TIPDOC
= DOC_TIPDOC
AND CCG_CODSUC
= DOC_CODSUC
LEFT JOIN dpdoccli
ON DOC_NUMERO
= MOV_DOCUME
AND DOC_TIPDOC
= MOV_TIPDOC
FAM_DESCRI = '$tipos_corte'
AND (MOV_FECHA
BETWEEN '$fecha_inicial' AND MOV_FECHA
<= '$fecha_final')